我有一个 cron 作业,只是在特定目录上运行 rsync。
当我运行 rsync 命令本身时sudo rsync -av --delete /directory1 /directory2
,它运行没有问题并且完全按照预期执行。
当 Cron 作业运行时 - 我在 /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
会阻止 cron 作业的完成? 使该 cron 作业完成并消除 MTA 错误的最佳方法是什么?
我发现这个答案但它没有说明这是否会阻碍工作的完成。
答案1
不,它不会阻止 CRON 作业完成。
通常情况下,您不应该让 CRON 作业生成输出而不告诉它在哪里写入输出。如果您这样做,就像在这种情况下一样,CRON 会尝试将其邮寄到某个地方(也在文件中指定crontab
)。如果不成功,它会丢弃输出,就像它在日志文件中所说的那样,然后继续。
就您而言,您没有安装“消息传输代理”。这是提供命令的软件包(如postfix
和)的通用名称。ssmtp
mail
我建议分别rsync
使用>
和重定向命令中的 SYSOUT 和 SYSERR 2>
。如果您根本不感兴趣,请将输出重定向到/dev/null
。