Многострочник для проверки есть ли интернет

Искусство написания bash скриптов. Делимся своими наработками
Ответить
Аватара пользователя
ZEN
Администратор
Сообщения: 1350
Зарегистрирован: 27 сен 2012, 18:23
Темы: 206
Откуда: Украина, Одесса
Статус: Не в сети

Многострочник для проверки есть ли интернет

Сообщение ZEN » 15 ноя 2012, 13:05

Сегодня писал про однострочник и решил модифицировать его. Пришлось превращать в функцию.
Единственное нововведение здесь, это возможность параметром указать какой хост пинговать

Код: Выделить всё

isalive () {
HOST=${1:-'8.8.8.8'}
while [[ true ]]; 
do 
    ping -c1 ${HOST:-'8.8.8.8'} > /dev/null && 
    notify-send -t 60000 -i network-wired "Есть коннект!" "$HOST доступен" && 
    break || 
    sleep 1m; 
done
}
Всё это дело вписываем в файл ~/.bashrc

Скриншот
как это работает при вызове isalive и isalive mail.ru

Изображение

P.S. Не забываем убрать в ~/bashrc alias с таким же именем из прошлой заметки
бог создал труд и обезьяну
чтоб получился человек
а вот пингвина он не трогал
тот сразу вышел хорошо

Серый
Сообщения: 844
Зарегистрирован: 27 сен 2012, 19:20
Темы: 102
Статус: Не в сети

Re: Многострочник для проверки есть ли интернет

Сообщение Серый » 15 ноя 2012, 13:19

Надо, чтобы при запуске скрипт говорил, что-то, а то запустишь его, а в ответ тишина. Работает он или нет - хз. Можно поставить тот же notify-send, но уже без параметра по времени, т.е. чтобы запустилось сообщение например "коннекта нет" и само исчезло через несколько секунд, а потом уже выскочит когда связь появится.
Это как предложение, а внедрять или нет это уже на усмотрение автора :)

Аватара пользователя
ZEN
Администратор
Сообщения: 1350
Зарегистрирован: 27 сен 2012, 18:23
Темы: 206
Откуда: Украина, Одесса
Статус: Не в сети

Re: Многострочник для проверки есть ли интернет

Сообщение ZEN » 15 ноя 2012, 13:25

Если каждую минуту будет сплывать сообщение, что коннекта нет, то я замучаюсь) А так, можно включить фильм и запустить скрипт. Как только инет появится скрипт возрадует всплывающим сообщением.
Или другой вариант, веб-сервер недоступен. Пока админы им занимаются (может железо обновляют), я могу запустить скрипт указав параметр адрес веб-сервера и не отвлекаться больше на эту рутинную задачу.

Иногда как раз важно не контролировать полностью процесс. Голова меньше забита лишними задачами :)
бог создал труд и обезьяну
чтоб получился человек
а вот пингвина он не трогал
тот сразу вышел хорошо

Серый
Сообщения: 844
Зарегистрирован: 27 сен 2012, 19:20
Темы: 102
Статус: Не в сети

Re: Многострочник для проверки есть ли интернет

Сообщение Серый » 15 ноя 2012, 13:28

Нет, я имел ввиду запуск сообщения только один раз, при старте скрипта и до начала цикла.
ps Хотя сейчас подумал, что бред написал) Вообщем он должен срабатывать только раз после первой неудачной попытки.

Аватара пользователя
ZEN
Администратор
Сообщения: 1350
Зарегистрирован: 27 сен 2012, 18:23
Темы: 206
Откуда: Украина, Одесса
Статус: Не в сети

Re: Многострочник для проверки есть ли интернет

Сообщение ZEN » 15 ноя 2012, 13:34

сообщение не появится, пока удаленный сервер не начнет отвечать. с паузой в одну минуту скрипт пингует. И как только сервер ответит - notify-send покажет сообщение и break "вырубит скрипт"
бог создал труд и обезьяну
чтоб получился человек
а вот пингвина он не трогал
тот сразу вышел хорошо

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей