crontab定时任务不执行
在生产环境下,添加了 crontab 定时计划任务,后面发现,定时任务并没有执行,在指定的文件夹下并没有相对应的日志产生。
关键词:crontab定时计划任务不执行
查看crontab服务状态
1 | serivice cron status |
其中若出现
(CRON) info (No MTA installed, discarding output)字样,说明linux系统中没有安装postfix。Postfix
是一种电子邮件服务器软件。当crontab执行脚本时,会将输出通过本地的文本邮件的方式传递给当前用户,传递的内容存放在/var/mail/<当前用户名>文件中。
1 | sudo apt update |
将标准错误和标准输出重定向到文件
当所有的输出重定向到文件以后,crontab就不会给本地用户发信息啦,也就解决了上节的问题。
为了将所有的输出都重定向到文件,可以在cron里写
*/1 * * * * r.sh
r.sh里写
a.sh >> /root/a.log 2>&1
附录:linux重定向
1 | command > filename 把标准输出重定向到一个新文件中 |
> 默认为标准输出重定向,与 1> 相同 2>&1 意思是把 标准错误输出 重定向到 标准输出.
&>file 意思是把标准输出 和 标准错误输出 都重定向到文件file中
/dev/null是一个文件,这个文件比较特殊,所有传给它的东西它都丢弃掉