Pakonigoosy
@Pakonigoosy
Разработчик ПО

Как реализовать досрочное завершение команды в bash?

Сейчас в путешествии и хочу написать небольшую программу, которая бы выводила в качестве уведомления на рабочий стол
"Соединение потеряно" или "Соединение восстановлено"
Реализовывать планируется так:
1. С помощью wget запросить страницу google.com
2. Подождать несколько секунд
3. Если в каталоге появился файл index.html, связь есть. Если не появился - связи нет

Вопрос следующий:
Как можно досрочно завершить wget? То есть, чтобы он пытался связаться в течение скажем 5 секунд, и если ничего не получилось, то команда бы завершалась
  • Вопрос задан
  • 184 просмотра
Решения вопроса 1
gedev
@gedev
сисадмин-энтузиаст
Решение на коленке в лоб. Скрипт пришлёт одно уведомление когда сеть упадёт и одно когда поднимется. Проверка раз в 60 секунд.
#!/usr/bin/env bash

addr=google.com
lock=/tmp/connect.failed

while true; do
    if ping -c 1 -W 5 "$addr" &> /dev/null; then
        if [ -f "$lock" ]; then
            notify-send 'Проверка подключения' 'Есть коннект'
            rm "$lock"
        fi
    else
        if [ ! -f "$lock" ]; then
            notify-send 'Проверка подключения' 'Связи нет'
            touch "$lock"
        fi
    fi
    sleep 60
done
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
mayton2019
@mayton2019
Bigdata Engineer
Непонятно зачем тут google? Если тебе нужен доступ к деловым ресурсам по работе - то и пингуй их.
Даже более того. Не пингуй а просто сигнализируй когда твои jobs упали. А то куча ненужных событий
идет. Мы и так живем в мире переизбытка информации...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы