У меня была проблема, в последнее время пытаясь выяснить, как заставить мой сценарий оболочки вставлять команду в ssh терминал после автоматического вхождения в ssh терминал. Я пытаюсь установить вкладку крона, которая выполнит мой сценарий оболочки, который автоматически входит в ssh терминал для моей точки доступа Ubiquiti и вставляет команду для выключения светодиода в определенное время. До сих пор я смог к автоматически SSH в точку доступа, когда я выполняю сценарий оболочки, но когда это входит в систему, это не вставляет команду. После того, как я вручную выхожу из терминала SSH, выполнений команды эха и вставляю команду после отъезда терминала. Я задавался вопросом, мог ли кто-либо помочь мне понять это. Я смотрел везде, но не могу найти ответы. Спасибо заранее. Это - код, который я в настоящее время имею в моем сценарии оболочки. Команда, которую я хочу смочь выполнить в терминале SSH, ("менеджмент led_pattern_override=2">>/var/etc/persistent/cfg/mgmt)
#!/bin/sh
sshpass -p "password" ssh -o StrictHostKeyChecking=no username@192.168.1.3;
echo '"mgmt.led_pattern_override=2" >> /var/etc/persistent/cfg/mgmt';
exit
Вместо того, чтобы запустить интерактивную ssh сессию, передайте команду эха непосредственно как аргумент ssh:
sshpass -p "password" ssh -o StrictHostKeyChecking=no username@192.168.1.3 '
echo "mgmt.led_pattern_override=2" >> /var/etc/persistent/cfg/mgmt
'
Ваша другая опция состояла бы в том, чтобы использовать expect
для сценариев интерактивной сессии - но это сверхсложно для этого случая.