Linux/UNIX更改Crontab电子邮件设置(MAILTO)
时间:2020-01-09 10:42:11 来源:igfitidea点击:
如何发送电子邮件到[email protected]而不是默认的系统root用户,以在Linux或者类似Unix的系统上进行crond服务。
在Linux或者类似Unix的系统上,如何在crontab文件下更改电子邮件设置?
一个crontab文件包含对cron守护程序的说明。
它每分钟唤醒一次,检查所有存储的crontab,检查每个命令以查看是否应在当前分钟内运行。
执行命令时,所有输出将邮寄到crontab的所有者或者crontab中的MAILTO环境变量中命名的用户(如果存在)。
如何更改Crontab电子邮件设置(MAILTO)
MAILTO语法为:
name = value
等号(=)周围的空格是可选的,并且值中任何后续的非前导空格都将是分配给name的值的一部分。
可以将值字符串放在引号中(单引号或者双引号,但匹配),以保留前导或者尾随的空格。
不会解析值字符串以进行环境替换,因此类似以下行:
PATH = $HOME/bin:$PATH
可能无法正常工作。
设置MAILTO变量以更改Crontab电子邮件设置
除LOGNAME,HOME和SHELL外,如果由于在此crontab中运行命令而有任何理由发送邮件,则cron还将查看MAILTO。
如果定义了MAILTO(并且是非空的),则将邮件发送给如此命名的用户。
首先打开您的crontab文件:
# vi /etc/crontab
或者
$ crontab -e
要将电子邮件发送到[email protected],请执行:
[email protected]
让我们向本地用户sai发送电子邮件:
MAILTO=sai
如果定义了MAILTO但为空(MAILTO =),则不会发送邮件。
MAILTO=""
否则,电子邮件将发送给crontab的所有者。
例子
MAILTO="[email protected]" @midnight /root/scripts/backup-servers 10 20 * * sun /bin/php-cli /wwwroot/apps/cleanup.php # # We can switch email alert too # MAILTO="sysadmin.it@domain-name-here" @daily /root/scripts/push-backup-host.sh MAILTO="storage.admin@domain-name-here" * 10 * * * /root/scripts/check-hardware-raid-array-health.pl # # Disable email alert for rest of jobs # MAILTO="" 5 0 * * * /scripts/bin/daily.sh >> /tmp/daily.shoutput.txt 2>&1
关于将电子邮件路由到网络或者本地网络之外的说明
设置MAILTO不会神奇地发送电子邮件。
要发送电子邮件,必须在同一主机或者局域网中运行电子邮件服务器。
换句话说,Linux和Unix用户需要运行诸如Sendmail或者Postfix之类的SMTP服务器。
最新的SMTP允许使用SMARTHOST,您可以其中使用云计算或者ISP电子邮件服务器转发电子邮件。