Перезагрузка Dlink DIR-100 скриптом

Linux
У меня 2 DIR-100 в разных районах «смотрят в Ланту». Один из них раз в недельку позволяет себе отвалить WAN без объяснения причин. И помогает бедолаге только перезагрузка.

Я решил перезагрузку автоматизировать. Ибо следить за ним визуально поднадоело.
Гнусные д-линки утверждают что их телнет на DIR-100 — недокументированная функция.
Но нас это не остановит.

Ставим пакет expect — ru.wikipedia.org/wiki/Expect

И ваяем скрипт:

#!/usr/bin/expect -f
expect <<eof
log_user 1 # разрешаем вывод - это по желанию
set timeout 30 # таймаут в секундах 
set send_slow {1 1} # устанавливаем передачу по 1 символу через 1 сек 
#dlink реально мееееедленно обрабатывает ввод
spawn telnet 192.168.1.1 
expect "login: " 
send -s "admin\r"
expect "Password: "
send -s "PASSWORD\r"
expect "CMD>"
send -s "dbg\r"
expect "DBG>"
send -s "rst\r"
expect eof

Чпок. Рестарт!

5 комментариев

avatar
А ребутится он постоянно или проверяет доступность?
avatar
Его, хороняку, надо бы проучить, да запустить в постоянный ребут минут на 600, но юсеры не поймут такого хип-хопа с интернетом.
Поэтому cron и:
if ping -c 3 -w 10 93.186.109.33> /dev/nul; then exit 1;fi
sh /etc/dlink_reboot.sh
avatar
Теперь понятно :)
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.