Crontab 电子邮件主题中的日期
Date in Crontab email subject
我有一个 ubuntu 服务器,我在其中安排如下所示的 crontab 进程。
59 2 * * * : Backup Settings; ~/backup_settings.sh
在流程结束时,我将收到一封主题为 "Backup Settings ..." 的电子邮件。本质上,noop 函数 (:) 对单词 "Backup Settings" 没有任何作用。我想将今天的日期添加到电子邮件主题中。当然,我试过了
59 2 * * * : $(date +%Y%m%d) Backup Settings; ~/backup_settings.sh
但这不会生成所需的电子邮件主题,即“20180519 备份设置”。 $(...) 代码未被评估。我不想 运行 另一个具有电子邮件功能的脚本然后将调用 backup_settings.sh。有没有办法只使用 crontab 中的 Bash 命令来做到这一点?
字符%
在crontab中很特殊,必须转义为\%
:
59 2 * * * : $(date +\%Y\%m\%d) Backup Settings; "$HOME/backup_settings.sh"
来自 man 5 crontab
在 Ubuntu 系统上:
The entire command portion of the line, up to a newline or %
character, will be executed by
/bin/sh
or by the shell specified in the SHELL
variable of the crontab file. Percent-signs (%
) in the command, unless escaped with backslash (\
), will be changed into
newline characters, and all data after the first %
will be sent to the command as standard input.
但请注意,cron 会将 cronjob 的逐字命令作为其发送的任何电子邮件的主题,而不是扩展的命令行。
要发送带有您自己标题的电子邮件,请明确使用 mail
:
59 2 * * * "$HOME/backup_settings.sh" | mail -s "$(date +\%Y\%m\%d) Backup Settings" myname
(其中 myname
是您要将电子邮件发送到的地址)。
我有一个 ubuntu 服务器,我在其中安排如下所示的 crontab 进程。
59 2 * * * : Backup Settings; ~/backup_settings.sh
在流程结束时,我将收到一封主题为 "Backup Settings ..." 的电子邮件。本质上,noop 函数 (:) 对单词 "Backup Settings" 没有任何作用。我想将今天的日期添加到电子邮件主题中。当然,我试过了
59 2 * * * : $(date +%Y%m%d) Backup Settings; ~/backup_settings.sh
但这不会生成所需的电子邮件主题,即“20180519 备份设置”。 $(...) 代码未被评估。我不想 运行 另一个具有电子邮件功能的脚本然后将调用 backup_settings.sh。有没有办法只使用 crontab 中的 Bash 命令来做到这一点?
字符%
在crontab中很特殊,必须转义为\%
:
59 2 * * * : $(date +\%Y\%m\%d) Backup Settings; "$HOME/backup_settings.sh"
来自 man 5 crontab
在 Ubuntu 系统上:
The entire command portion of the line, up to a newline or
%
character, will be executed by/bin/sh
or by the shell specified in theSHELL
variable of the crontab file. Percent-signs (%
) in the command, unless escaped with backslash (\
), will be changed into newline characters, and all data after the first%
will be sent to the command as standard input.
但请注意,cron 会将 cronjob 的逐字命令作为其发送的任何电子邮件的主题,而不是扩展的命令行。
要发送带有您自己标题的电子邮件,请明确使用 mail
:
59 2 * * * "$HOME/backup_settings.sh" | mail -s "$(date +\%Y\%m\%d) Backup Settings" myname
(其中 myname
是您要将电子邮件发送到的地址)。