使用 crontab 发送电子邮件时如何更改主题?

How to change the subject when sending email using crontab?

我的 crontab 配置为

MAILTO=example@gmail.com

#1am every day (EST)
00 05 * * * /bin/bash /home/ubuntu/mongo_backup.sh

向我发送主题为

的电子邮件
Cron <ubuntu@ip-XXX-XX-XX-XX> /bin/bash /home/ubuntu/mongo_backup.sh

但我需要一些自定义日期

<Date> MyProjectName

如果您想在消息或主题中发送实际日期,请使用反引号之间的日期指令:

`date`

例如,此脚本会将当前日期作为主题发送:

echo "Current date is in the subject of this message" | mail xxx@mydomain.org -s "send at `date`"

最好使用 os 中的邮件包,如下所示。 它还会将 mongo_backup 脚本的任何错误输出通过管道发送到电子邮件因为消息和电子邮件主题将是最新的 date-time.

00 05 * * * /bin/bash /home/ubuntu/mongo_backup.sh 2>&1 | mail -s $(date "+%Y%m%d-%H%M%S") example@gmail.com 

您可以使用 Linux 内置的邮件用户代理实用程序 - mailx,它还可以将 shell 脚本的输出(如果有的话)传送到指定的 mail-id.

00 05 * * * /bin/bash /home/ubuntu/mongo_backup.sh | mailx -m -s "$(date +\%Y\%m\%d) MyProjectName" <User-ID here> 2>/dev/null