如何在 cron 作业后发送电子邮件

Boo*_*oth 15 email linux centos cron

我为增量备份添加了一个 cron 作业,并像这样配置它:

0 23 * * * /usr/bin/rsync -ravzX /mnt/external/project/ /media/backup/project/ | mail -s "Backup Success" admin@example.com

但是我没有收到任何电子邮件。
我怎样才能找出问题所在?

san*_*s85 30

您可以使用 crontab 中的 MAILTO 选项来定义您的电子邮件地址并接收所有正在运行的 cron 中的所有输出和错误。

使用打开 crontab

crontab -e
Run Code Online (Sandbox Code Playgroud)

在文件顶部使用 MAILTO 选项作为

MAILTO=email@example.com
Run Code Online (Sandbox Code Playgroud)

cron 寻找 MAILTO 功能来决定它应该将 cron 日志发送到哪里。如果 cron 使用 root 运行,它默认发送到 root。

将它放在顶部并从 crons 中删除任何邮件命令引用。

在此之后测试并验证您是否收到 cron 警报。


小智 3

在 FreeBSD 上

\n\n

1:检查日志:

\n\n
tail -f /var/log/cron\ntail -f /var/log/maillog\n
Run Code Online (Sandbox Code Playgroud)\n\n

2:将sendmail替换为ssmtp\nvi /etc/rc.conf文件..并添加:

\n\n
sendmail_enable="NO"\nsendmail_submit_enable="NO"\nsendmail_outbound_enable="NO"\nsendmail_msp_queue_enable="NO"\n
Run Code Online (Sandbox Code Playgroud)\n\n

3:启动以下命令:

\n\n
killall sendmail\ncd /usr/ports/mail/ssmtp/\nmake install replace clean\n
Run Code Online (Sandbox Code Playgroud)\n\n

4:编辑ssmtp conf文件:

\n\n
vi /usr/local/etc/ssmtp/ssmtp.conf\n
Run Code Online (Sandbox Code Playgroud)\n\n

....并添加以下行:

\n\n
root=yourrealemail@example.com\nmailhub=smtp.example.com:465\nRewriteDomain=example.org\nUseTLS=YES\nAuthUser=user@example.com\nAuthPass=password222\nFromLineOverride=YES\nHostname=yourhostname\n
Run Code Online (Sandbox Code Playgroud)\n\n

5:输入以下命令:

\n\n
echo \xe2\x80\x98ssmtp_enable=\xe2\x80\x9cYES\xe2\x80\x9d\xe2\x80\x99 >> /etc/rc.conf\n
Run Code Online (Sandbox Code Playgroud)\n\n

ps\nssmtp.conf 的其他解释选项如下:

\n\n

http://www.techrepublic.com/blog/it-security/use-ssmtp-to-send-e-mail-simply-and-securely/

\n

  • 如果问题是“如何让 SSMTP 在 FreeBSD 上通过 gmail 发送邮件”,这将是一个很好的答案。不幸的是,问题是关于 Linux 上的 cron 和邮件。 (18认同)