手动操作执行,crontab定时任务执行出错,K哥
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了手动操作执行,crontab定时任务执行出错,K哥相关的知识,希望对你有一定的参考价值。
最近给一台机器搞自动巡检发邮件
之前其他机器用的都是sendmail
直接执行下面的命令是没有问题的
这台由于有别的业务所以装的是postfix
下面是我的定时任务
0 8 * * * /opt/xunjian/xunjian.sh > /opt/xunjian/xunjian;mail -s ‘22.44.55.66‘ [email protected] < /opt/xunjian/xunjian
手动执行效果理想,邮件中可以直接显示结果
/opt/xunjian/xunjian.sh > /opt/xunjian/xunjian
前面的命令没有任何问题,可以通过结果查看出来
我是K哥
mail -s ‘22.44.55.66‘ [email protected] < /opt/xunjian/xunjian
后面的命令手动单独操作也没有问题
如果把这段命令加入crontab中
那么邮件中看到的结果会是一个附件,附件名如下
tcmime.1205.1205.16703.bin
那么问题来了,为什么会是这样呢?
我们来细想一下,如果mail配置有问题,那么邮件根本不会收到
邮件可以收到但是显示成为附件
查看了百度谷歌,很多一样的问题
终于找到个靠谱的回答:crontab环境变量
如何解决呢,很简单就是加入引用全局变量
source /etc/profile
我是K哥
我把命令改成如下就可以正常显示邮件了
0 8 * * * /opt/xunjian/xunjian.sh > /opt/xunjian/xunjian;source /etc/profile;mail -s ‘133.22.123.22‘ [email protected] < /opt/xunjian/xunjian
或者你也可以执行文件
0 8 * * * /opt/mail.sh
vi /opt/mail.sh
#!/bin/bash
source /etc/profile
/opt/xunjian/xunjian.sh > /opt/xunjian/xunjian
mail -s ‘133.22.123.22‘ [email protected] < /opt/xunjian/xunjian
希望可以帮到大家,谢谢
以上是关于手动操作执行,crontab定时任务执行出错,K哥的主要内容,如果未能解决你的问题,请参考以下文章
crontab内环境变量问题(crontab定时任务执行脚本异常)
linux下执行Python项目,crontab不能定时执行任务