Как стать автором
Поиск
Написать публикацию
Обновить

Автоматическое переподключение ADSL-соединения в Debian GNU/Linux, Ubuntu

Давно испытывал проблемы из-за периодически отключающегося интернет-соединения в офисе, приходилось не один раз в выходные идти на работу и вручную подключать соединение с интернетом. Наверняка многие знакомы с этой же проблемой, когда подключенное ADSL соединение от провайдера, спустя пару дней перестаёт работать.
Но, благодаря тому, что роль шлюза в сеть интернет у меня выполнял собственный сервер с установленной 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.

После того, как я выполнил данные операции на своем сервере, то почти перестал беспокоиться о том, что меня могут неожиданно вызвать в выходные на работу, без человеческого вмешательства он может работать месяцами, надеюсь кому-нибудь пригодится этот мой опыт.
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.