Нужна система оповещения, если мой скрипт клонирования не работает

Возможный дубликат:
Как повторно вызывать rsync, пока файлы не будут успешно переданы

Я настроил ночной rsync для зеркалирования одного сервера на резервный внешний сервер резервного копирования. Общее хранилище данных на первичном сервере составляет 1,5 ТБ. В процессе работы я столкнулся с многочисленными проблемами со средой, с которыми, похоже, разобрался, но, несмотря на то, что сейчас это работает, я все еще нервничаю. Предполагается, что это резервный сервер в сценарии бедствия, и если произошла авария, и в резерве не синхронизированы все необходимые данные, я остался без работы.

Таким образом, я хочу написать скрипт для системы, которая будет подтверждать после каждой ночной синхронизации, что данные назначения соответствуют источнику. Я понимаю, что rsync делает это, но если rsync завершается не полностью (что происходило во время устранения неполадок при настройке), мне нужно знать.

Какие-либо предложения? Я лучше с Руби, если это имеет отношение к решению.

2 ответа

Взгляните на размещенное решение PushMon. Сначала вы создаете URL PushMon. Затем в вашем скрипте, когда код выхода равен 0, вызовите ваш PushMon URL. Пока вы продолжаете называть свой PushMon URL, оповещения отправляться не будут. Когда ваш скрипт не запускается или зависает и, следовательно, не вызывает URL-адрес PushMon, вы будете предупреждены.

Обратите внимание, что я связан с PushMon.

Я бы просто настроил MTA на машине ( sSMTP отлично подходит, если у вас есть смарт-хост), чтобы любой вывод из cronjob отправлялся вам по почте. Бег rsync с --quiet должно быть достаточным (то есть он не должен ничего выводить, если он был успешным, но выводить сообщение об ошибке, если нет), но вы также можете явно проверить его код выхода в скрипте, чтобы убедиться, что есть какой-то вывод.

#!/bin/sh
rsync [...]
CODE=$?
if [ "$CODE" -ne 0 ]; then
    echo "rsync exited with code $CODE"
fi
Другие вопросы по тегам