Я выполняю резервное копирование удаленного сервера на другой компьютер с помощью rsync.
В cron.daily у меня есть файл с этим:
rsync -avz -e ssh root@example.com:/ /mybackup/
Для входа в систему используется пара открытого и закрытого ключей. Кажется, что большую часть времени это работает хорошо, однако я (по глупости) только когда-либо действительно проверял это, глядя на даты в некоторых важных файлах (дампах MySQL), которые, как я знаю, меняются каждый день. Очевидно, что после этого файла может произойти ошибка.
Иногда это не удается. Когда я запускаю его вручную, иногда происходит что-то вроде "сброса клиента".
Как лучше всего зарегистрировать его, чтобы я мог с уверенностью проверить, завершился он или нет? Журнал cron не показывает ошибок. Я не пробовал, но справочная страница rsync в старой версии CentOS на резервной машине не показывает параметр --log-file. Думаю, я мог бы перенаправить stdout с помощью>, но я действительно не хочу знать о каждом файле. Я просто хочу знать, сработало все это или нет ..
Спасибо
Думаю, ты уже решил свой вопрос. Если вы перенаправляете и stdout, и stderr в файл, вы не получите вывод для каждого файла, передаваемого rsync - это создается только в том случае, если вы работаете в подробном (-v
) Режим. Поведение по умолчанию rsync
выводить данные только в случае ошибки. Итак, вы можете это сделать ...
rsync ... > /var/log/rsync.log 2>&1
... и проверьте этот файл, чтобы убедиться, что последний rsync был успешным или нет. Я явно использую >
, который будет перезаписывать файл журнала каждый раз rsync
бежит.
Вы также можете воспользоваться тем, что rsync
завершается с ненулевым кодом, когда передача не выполняется, поэтому вы можете сделать что-то вроде этого:
rsync ... || echo "rsync failed" | mail -s 'rsync falied' you@example.com
Уберите опцию -v и добавьте -q. Это даст только ошибки
Возможно, вы могли бы использовать системный журнал с помощью команды: регистратор.
Я запускаю скрипты так:
rsync -v what user@host 2>&1 | logger -t backup
Это напишет на /var/log/messages
по умолчанию.