Преамбула. Глючное железо на шлюзе, время от времени (иногда раз в пару месяцев, а иногда и пару раз в неделю) вешается. Выводится из состояния повешения исключительно кнопочкой Reset.
Постановка задачи. Ходить и перегружать лень, особенно если находишься в другом городе.
Решение. В компьютере имеется деталь, которая умеет совершать возвратно-поступательные движения: CD-привод. Если на нём сделать выступающую нашлёпку, то появляется возможность давить выезжающим лотком CD-привода на кнопочку Reset находящейся напротив машины. Главное их аккуратно выровнять, что и было проделано.
Затем пишется скрипт, который может проверить отклик от напротивстоящей машины (в нашем случае -- шлюза) и в случае его отсутствия выдвинуть/задвинуть лоток CD-привода:
Кладём скрипт в файл с именем /opt/pping и делаем его исполняемым.
И напоследок добавляем от имени рута задание в crontab:
Всё. Теперь каждые 5 минут происходит автоматическая проверка шлюза. И если он не отзывается, -- его перегружает стоящий напротив компьютер.
Постановка задачи. Ходить и перегружать лень, особенно если находишься в другом городе.
Решение. В компьютере имеется деталь, которая умеет совершать возвратно-поступательные движения: CD-привод. Если на нём сделать выступающую нашлёпку, то появляется возможность давить выезжающим лотком CD-привода на кнопочку Reset находящейся напротив машины. Главное их аккуратно выровнять, что и было проделано.
Затем пишется скрипт, который может проверить отклик от напротивстоящей машины (в нашем случае -- шлюза) и в случае его отсутствия выдвинуть/задвинуть лоток CD-привода:
#!/bin/bash
target=`/sbin/route -n | grep UG | awk ' BEGIN { FS = " " } { print $2 }'`
ans=`ping -c 1 $target > /dev/null; echo $?`
if [ $ans -eq "1" ]
then eject; eject -t
fi
Кладём скрипт в файл с именем /opt/pping и делаем его исполняемым.
И напоследок добавляем от имени рута задание в crontab:
0,5,10,15,20,25,30,35,45,50,55 * * * * /opt/pping
Всё. Теперь каждые 5 минут происходит автоматическая проверка шлюза. И если он не отзывается, -- его перегружает стоящий напротив компьютер.