Const (__const__) wrote,
Const
__const__

Category:

что только не сделаешь, чтобы ничего не делать

Преамбула. Глючное железо на шлюзе, время от времени (иногда раз в пару месяцев, а иногда и пару раз в неделю) вешается. Выводится из состояния повешения исключительно кнопочкой Reset.

Постановка задачи. Ходить и перегружать лень, особенно если находишься в другом городе.

Решение. В компьютере имеется деталь, которая умеет совершать возвратно-поступательные движения: 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 минут происходит автоматическая проверка шлюза. И если он не отзывается, -- его перегружает стоящий напротив компьютер.
Tags: linux
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 4 comments