Как повторить или вставить команды в терминал SSH со сценарием оболочки

У меня была проблема, в последнее время пытаясь выяснить, как заставить мой сценарий оболочки вставлять команду в 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
2
задан 17 March 2020 в 04:04

1 ответ

Вместо того, чтобы запустить интерактивную 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 для сценариев интерактивной сессии - но это сверхсложно для этого случая.

2
ответ дан 7 April 2020 в 23:35

Другие вопросы по тегам:

Похожие вопросы: