问题
使用crontab进行设置定时任务,任务没有执行.
使用命令
tail /var/log/syslog
查看文件,看到cron报错:
(CRON) info (No MTA installed, discarding output)
主要原因
报错的主要原因是没有配置邮件服务器.
导致出错的情况及解决办法
有两种情况会导致这个现象.
(1)命令中含有shell指令
执行命令
crontab -e
查看当前用户的计划任务
当你运行的任务中包含shell命令,就会报错.例如下面的第二个任务:
* * * * * date >log
* * * * * ./temp.sh >`date`.log
可以通过安装邮件服务器解决该问题.
sudo apt-get install postfix
sudo dpkg-reconfigure postfix
或者是把该shell命令放到一个文件中,执行该文件.然后重定向到null文件.
(2)执行任务过程中会往屏幕输出内容
当你执行的是个脚本文件时,你可以把文件的输出重定向到某个文件中.例如:
* * * * * cd /home/wang && ./temp.sh >temp.log
或者不需要保留执行的输出,则重定向到null中:
* * * * * cd /home/wang && ./temp.sh >/dev/null 2>&1
————————————————
版权声明:本文为CSDN博主「win_turn」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/win_turn/article/details/53000899