LINUX.ORG.RU
ФорумAdmin

Автоматический перезапуск телефонов по ssh (sshpass, expect или другие варианты)

 , , ,


0

2

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

Вариант с sshpass:

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

В ответ Connection to 192.168.2.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, нет никакой реакции.
Прошу подсказки в решении задачи. Спасибо.

Ответ на: комментарий от anonymous

reboot –force

С таким принудительным вариантом, для телефона никаких последствий не будет, в плане софта?

lawliet ()
Ответ на: комментарий от anonymous

<<< y - выдал packet_write_wait: Connection to 192.168.2.1 port 22: Broken pipe
force - телефон такого не знает

Kobold ()
Последнее исправление: Kobold (всего исправлений: 1)
Ограничение на отправку комментариев: только для зарегистрированных пользователей