Cron 作业日志显示“未安装 MTA”,这是否会阻止 CRON 作业完成?

Han*_*nny 8 bash backup scripts cron rsync

我有一个 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)
Run Code Online (Sandbox Code Playgroud)

但是文件不在备份目录中(所以它没有完成)。

关于 ' No MTA installed' 的第二个语句是否阻止了 cron 作业的完成?完成该 cron 作业并摆脱 MTA 错误的最佳方法是什么?

我找到了这个答案,但没有说明这是否会阻止工作完成。

Jos*_*Jos 8

不,它不会阻止 CRON 作业完成。

通常,你不应该让你的 CRON 作业生成输出而不告诉它在哪里写它。如果这样做,就像在这种情况下一样,CRON 会尝试将其邮寄到某个地方(也在crontab文件中指定)。如果它不成功,它会丢弃输出,正如它在日志文件中所说的那样,然后继续。

在您的情况下,您没有安装“消息传输代理”。这是提供命令的包的通用名称,例如postfix和。ssmtpmail

我建议分别rsync使用>和从命令重定向SYSOUT 和SYSERR 2>。如果您根本不感兴趣,请将输出重定向到/dev/null.