Стоит задача удалённо перезагружать ip-телефоны каждую ночь. Глючат от долгой работы.


Вариант с sshpass:

sshpass -p 12345678 ssh -o StrictHostKeyChecking=no admin@192.168.2.1 reboot


В ответ Connection to 10.99.5.1 closed by remote host.

Помимо этого телефон, в обычном режиме, просит ответить y и решил перейти ко второму варианту.


Вариант с expect:

Взять и адаптирован на пробу код с интернета:

COMM="
log_file debug.log
exp_internal 1
set timeout 5
spawn ssh admin@192.168.2.1
expect \"password:\"
send \"12345678\r\"
sleep 5
expect \"*>\"
send \"reboot\r\"
sleep 5
expect \"*y/N*\"
send \"y\r\"
expect eof
"
expect -c "$COMM"



Когда выполняю сам из консоли всё ок. По cron, судя по debug.log, почему-то после авторизации на устройстве не появляется строка для ввода команды expect \«*>\». Даже если убрать expect \«*>\» и просто слать send, нет никакой реакции.

Прошу подсказки в решении задачи. Спасибо.








 , , ,






URL записи