将 cron 输出发送到电子邮件?

将 cron 输出发送到电子邮件?

我正在尝试将 cron 输出发送到电子邮件地址,但很困难......我正在运行以下命令:

13 15 * * 1-5 root /path/to/mysql-backup.sh 2>&1 | mail -s "Daily Database Backup Report" [email protected]

这显示了这个错误/var/mail/root

/usr/bin/mail: line 1: syntax error near unexpected token `('
/usr/bin/mail: line 1: `Config file not found (-s)'

这是试图验证/执行 cron 的输出吗?

你在你的服务器上这样做吗?如果是这样,怎么办?

答案1

根据我的经验,/usr/bin/mail它是一个二进制可执行文件,但在您的系统上,shell 似乎正在加载并解释它。syntax error near unexpected token是一个巴什诊断。

如果您覆盖了可执行文件,则可能会发生这种情况。是否有可能用/usr/bin/mail文本“未找到配置文件(-s)”覆盖,导致当您尝试执行它时将所述文本提供给 shell?

答案2

你有没有尝试过邮箱如果有效的话?或者检查是否可以在 bash 脚本本身内发送邮件。

答案3

我想你的脚本“/path/to/mysql-backup.sh”的结果是二进制的,邮件遇到错误的原因是因为你不能简单地通过管道传输二进制输出而不对其进行编码。

在命令行上附加文件的一个好方法是mutt.查看讨论:如何使用 linux 命令行将文件作为电子邮件附件发送

相关内容