Давно испытывал проблемы из-за периодически отключающегося интернет-соединения в офисе, приходилось не один раз в выходные идти на работу и вручную подключать соединение с интернетом. Наверняка многие знакомы с этой же проблемой, когда подключенное ADSL соединение от провайдера, спустя пару дней перестаёт работать.
Но, благодаря тому, что роль шлюза в сеть интернет у меня выполнял собственный сервер с установленной Ubuntu Server 10.04 LTS, избавиться от этой проблемы было довольно просто, написав небольшой скрипт на bash.
Создаём файл, который и будет содержать код скрипта:
# touch /root/checkping
Далее пишем сам код скрипта:
# nano /root/checkping
И добавляем задание в планировщик:
# crontab -e
Суть работы скрипта очень проста, раз в 10 минут планировщик запускает скрипт, который пингует заданный нами ip-адрес, либо URL, в данном примере, и в работе у себя, я использовал ip-адрес публичного dns-сервера Google, можно использовать любой другой, например локальный ресурс провайдера, часто им является Яндекс. Далее, если пинг неудачен, скрипт повторно пингует через 10 секунд (как говорится, на всякий случай, потому что качество работы многих провайдеров до сих пор оставляет желать лучшего). Если и на второй раз пинг неудачен, скрипт выполняет команду для отключения и включения демона ppptd.
После того, как я выполнил данные операции на своем сервере, то почти перестал беспокоиться о том, что меня могут неожиданно вызвать в выходные на работу, без человеческого вмешательства он может работать месяцами, надеюсь кому-нибудь пригодится этот мой опыт.
Но, благодаря тому, что роль шлюза в сеть интернет у меня выполнял собственный сервер с установленной Ubuntu Server 10.04 LTS, избавиться от этой проблемы было довольно просто, написав небольшой скрипт на bash.
Создаём файл, который и будет содержать код скрипта:
# touch /root/checkping
Далее пишем сам код скрипта:
# nano /root/checkping
#!/bin/bash
if eval "ping -c 1 8.8.8.8"; then
echo "ok"
else
sleep 10
if eval "ping -c 1 8.8.8.8"; then
echo "ok"
else
poff && pon dsl-provider
fi
fi
exit 0
И добавляем задание в планировщик:
# crontab -e
*/10 * * * * /root/checkping
Суть работы скрипта очень проста, раз в 10 минут планировщик запускает скрипт, который пингует заданный нами ip-адрес, либо URL, в данном примере, и в работе у себя, я использовал ip-адрес публичного dns-сервера Google, можно использовать любой другой, например локальный ресурс провайдера, часто им является Яндекс. Далее, если пинг неудачен, скрипт повторно пингует через 10 секунд (как говорится, на всякий случай, потому что качество работы многих провайдеров до сих пор оставляет желать лучшего). Если и на второй раз пинг неудачен, скрипт выполняет команду для отключения и включения демона ppptd.
После того, как я выполнил данные операции на своем сервере, то почти перестал беспокоиться о том, что меня могут неожиданно вызвать в выходные на работу, без человеческого вмешательства он может работать месяцами, надеюсь кому-нибудь пригодится этот мой опыт.