当cron完成时如何获得电子邮件通知并login文件(两者)

我是一个新手到Linux。 我试图弄清楚一些事情。 有人可以帮助我如何结合这两个命令?

(1)通常cron可以通过以下方式通过编辑crontab将结果定向到一个日志文件

*/10 * * * * /scripts/mysc.sh >> /home/ara/Desktop/test/log.txt 2>&1 

(2),如果我们需要cron的结果是电子邮件,我们可以使用[email protected] ,如

 [email protected] */10 * * * * /scripts/mysc.sh 

但如何结合两个选项(1)和(2)? 我看到一些虚拟主机空间同时启用了两个选项。 我做了我的search/谷歌search,但没有做到这一点。 我使用的是centos 6.5,并使用crontab -e来编辑。

你的第一个例子发送stderr和stdout到文件(2>&1); 在cron中设置的MAILTOvariables将捕获任何未redirect的输出,并且将输出指向文件意味着cron不能输出电子邮件。

我build议使用tee将输出追加到文件以及发送到标准输出; 这个答案 – https://serverfault.com/a/472878/102867 – 是非常相似的,你要求达到什么目的。

或者,按照第一个答案中的build议,编写一个包装脚本,以更优雅地处理脚本的输出,然后您可以logging并输出脚本的输出

Cronjob的日志和电子邮件:

每个月的第一天的午夜运行一次: 0 0 1 * *

 0 0 1 * * /home/User/script.sh > /home/User/cronlog/`date +\%Y-\%m-\%d-\%H:\%M:\%S`-cron.log 2>&1 ; mailx -s "CronJob is run successfully" [email protected],[email protected]