Как прервать wget через n раз

1

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

Вот моя работа cron:

* * * * * /usr/bin/wget "www.mydomain.fr" --timeout 30 -O - 2>/dev/null | grep "a_string_in_the_site" || echo "The site is offline" | wget "urltotextmeamessage.com"

Эта задача проверяет каждые 30 секунд статус сайта и отправляет сообщение, если сайт находится в автономном режиме: OKAY

Проблема в том, что я не хочу сотни сообщений каждые 30 секунд, когда сайт будет отключен.

Можно ли остановить задачу cron после n раз (или сделать "перерыв") до момента, когда сайт снова будет в сети?

Есть идеи?

  • 0
    попытаться применить условие на работу кроны. serverfault.com/questions/661139/...
  • 0
    Напишите сценарий, который сделает работу ...
Теги:
wget
cron

1 ответ

0

Я бы не остановил работу cron, потому что вам все равно нужно проверить, снова ли он подключен к сети. Вы можете ограничить msgs сообщением OK/DOWN с помощью этого скрипта:

#!/bin/bash
#   /usr/local/sbin/check_webserver

wget -O - -q "checkurl" | if grep -q "checkword"; then
    echo "Server OK" > /var/run/check_webserver
else
    echo "Server DOWN" > /var/run/check_webserver
fi

diff -q /var/run/check_webserver /var/run/check_webserver.old >/dev/null  2>&1 || 
cat /var/run/check_webserver
# or put some other msg service than cron mail here

cp /var/run/check_webserver /var/run/check_webserver.old

и добавьте это в cron:

* * * * * /usr/local/sbin/check_webserver 

Ещё вопросы

Сообщество Overcoder
Наверх
Меню