У меня есть задание крона, которое просто выполняет rsync на конкретном каталоге.
Когда я выполняю саму команду rsync sudo rsync -av --delete /directory1 /directory2
, это работает без проблемы и делает точно, как предназначено.
Когда прогоны задания Крона - я вижу его в/var/log/syslog.1, и это говорит, что это (подвело итог):
Mar 12 11:38:01 ip-xx-xx-xx-xxx CRON[4970]: (root) CMD (rsync --delete /my/directory /backup/directory)
Mar 12 11:38:01 ip-xx-xx-xx-xxx CRON[4970]: (CRON) info (No MTA installed, discarding output)
Но файлы не находятся в резервном каталоге (таким образом, он не завершается).
Делает тот второй оператор о'No MTA installed
'предотвратите завершение задания крона? Что лучший способ состоит в том, чтобы заставить то задание крона завершать и избавляться от ошибки MTA?
Я нашел этот ответ, но он не говорит, препятствует ли это тому, чтобы задание закончилось.
Нет, это не мешает завершению работы CRON.
Как правило, вы не должны позволять своей работе CRON генерировать выходные данные, не сообщая, куда ее писать. Если вы это сделаете, как в этом случае, CRON попытается отправить его куда-нибудь по почте (также указано в файле crontab
). Если это не удается, он отбрасывает вывод, как сказано в файле журнала, и продолжается.
В вашем случае у вас не установлен «Агент передачи сообщений». Это общее имя для пакетов, таких как postfix
и ssmtp
, которые предоставляют команду mail
.
Я рекомендую перенаправить SYSOUT и SYSERR из команды rsync
, используя >
и 2>
соответственно. Если вам это совсем не интересно, перенаправьте вывод на /dev/null
.