середа, 24 березня 2010 р.

Миссия: разбудить Beeline

Как я говорил в предыдущем посте, у провайдера моего есть одна неприятная особенность. Соединение "залипает". Это проявляется в следующих симптомах: ВПН-соединение не обрывается, демон остается уверен, что все работает отлично. Пинги входят и выходят, а интернета - нету. Сайты не отображаются, аська не работает, торренты не качают. Когда у меня был железячный роутер, проблема решалась только перезагрузкой. Причиной называлась перегруженность сервера vpn2.beeline.ua.

Но вот, Билайн объявил, что специально для Киева и пригородов в начале марта был поднят новый сервер: tp.beeline.ua. Админы активно приглашали тестить и радовали тем, что  нагрузка на нем не поднимается даже до 1%. На радостях, я настроил l2tp-соединение с новым сервером. Но, оказалось, что залипания, хоть и стали намного реже, однако же не пропали совсем. Проблему решил исправить, сваяв небольшой скриптик, который пытается скачать страничку с какого-то всегда доступного сайта в интернете, и если у него это не получается, то перегружать демон xl2tpd.
Собственно, вот сам скрипт:
#!/bin/sh
clear
date > /home/jona/test.log
if [ -r index.html ]
    then rm /root/index.html*
fi
echo "trying ya.ru" >> /home/jona/test.log
wget -T 10 -t 1 ya.ru
if [ ! -r index.html ]
    then wget -T 10 -t 1 google.com.ua
    echo "trying google.com.ua" >> /home/jona/test.log
fi
if [ ! -r index.html ]
    then
        /etc/init.d/xl2tpd restart
        date >> /home/jona/restart.log
fi
exit 0



Читати далі...

вівторок, 23 березня 2010 р.

Такой интересный CRON

Понадобилось мне как-то добавить в систему скрипт, который проверял наличие xl2tpd-соединения, поскольку у моего "любимого" провайдера оно периодически "залипает". Скрипт-то я написал, но... возник вопрос, как заставить систему выполнять его каждых 5 минут. Google мне помог. Наш ответ - CRON.


Согласно Вики, cron — это демон-планировщик задач в UNIX-подобных операционных системах, использующийся для периодического выполнения заданий в заданное время. Каждый пользователь системы имеет свой файл заданий crontab, в котором описано, в какое время и какие программы запускать от имени этого пользователя. Для редактирования файла crontab используется специальная одноименная программа crontab, позволяющая не прерывать процесс на время редактирования.

Вот

Как и сказано в Вики, запускаем

$ crontab -e

Если это первый запуск, тогда программа скажет, что для этого пользователя еще не определен редактор для crontab-а и предложит выбрать из всех консольных текстовых редакторов, установленных в системе.

Далее нам предлагается ввести свою новую задачу

Синтаксис файла такой:

* * * * * команда на исполнение
- - - - -
| | | | |
| | | | ----- День недели (0 - 7) (Воскресенье=0 or 7)
| | | ------- Месяц (1 - 12)
| | --------- День месяца (1 - 31)
| ----------- Час (0 - 23)
------------- Минута (0 - 59)


Здесь, в принципе, все должно быть понятно

* - любое возможное значение
*/5 - каждых 5 минут (часов, дней, месяцев)
1,2,3 - запятая имеет значение "или"
9-17 - любое значение из промежутка

Вот и вся премудрость


Читати далі...