手动操作执行,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哥的主要内容,如果未能解决你的问题,请参考以下文章

CentOS 中 crontab 定时任务找不到命令问题

crontab 命令行执行成功,定时任务报错

crontab内环境变量问题(crontab定时任务执行脚本异常)

linux下执行Python项目,crontab不能定时执行任务

linux中打包备份脚本,手动执行可以正常打包,使用crontab -e 添加到系统定时任务中执行就无法打包

linux中打包备份脚本,手动执行可以正常打包,使用crontab -e 添加到系统定时任务中执行就无法打包