更新 :cronstring现在在结构上是正确的。
我有我的crontabconfiguration的mailto:[email protected],[email protected]选项
我现在有这个计划:
* / 5 * * * * root / bin / bash / scripts / db -bkup-test&> / tmp / myDbBack.log; mailx -s“夜间testing数据库备份正在成功运行”user @ domain.com,user1 @ domain.com
* / 5 * * * * root / bin / bash / scripts / db -bkup-test&> / tmp / myDbBack.log; mail -s“夜间testing数据库备份正在成功运行”user @ domain.com,user1 @ domain.com
我收到邮件中找不到/ bin / bash邮件的错误。 我觉得这很搞笑。 那么我该如何解决这个错误呢?
这是你如何编辑你的cron文件:
crontab -e
下面是一个基本的cronjob例子,它每6小时转储一次数据库并发送一封电子邮件,电子邮件将包含任何命令输出到汤姆汉克斯和汤姆克鲁斯的标准输出:
MAILTO="[email protected],[email protected]" 0 */6 * * * mysqldump -u tom_hanks -pHANKS_TOM --host=10.0.0.1 mycompany > /home/tom_hanks/db.sql
现在要使用邮件命令,您需要一个MTA代理。 在ubuntu / debian下安装postfix来通过terminal获取邮件命令:
sudo apt-get update && sudo apt-get install -y postfix mailutils
要么
sudo dnf update && sudo dnf install postfix mailx -y
replace旧版Redhat或Fedora的yum。
对于mailx,您可以在ubuntu / debian上安装bsd-mailx :
sudo apt-get update && sudo apt-get install bsd-mailx
如果你已经安装了postfix,你可以在ubuntu / debian的terminal上使用这个命令来排除故障:
sudo dpkg-reconfigure postfix
使用iptables打开端口25:
iptables -I INPUT -p tcp -m tcp --dport 25 -j ACCEPT
既然你想让root运行cronjob,请使用
sudo crontab -e
然后像这样添加你的cronjob:
*/5 * * * * sh /scripts/db-bkup-test.sh &> /tmp/myDbBack.log && mail -s "Nightly Test Database Back-up Is Running Successfully" [email protected],[email protected] < /dev/null
mail命令将需要一个电子邮件正文,我们正在提供null(无)
所以对linux服务器端不是很熟悉,搞明白了。 我安装了mailx。
yum安装mailx
使用这个来源。
我使用cmdtesting了这个服务:
$ mailx -s 'Test' [email protected] > /dev/null
更新了cron以反映与上面相同的空体> /dev/null