问题描述

设置一个crontab,*/1 * * * * /bin/bash  /home/test/1.sh,

手动 sh  /home/test/1.sh可以执行,但放到crontab里却无法运行,

 

问题所在:

crontab缺省用户profile文件中的环境变量参数, 导致手工执行脚本成功,但是到crontab中无法执行。

 

解决方法:

在每个需要定时执行的脚本前面加上如下内容

#!/bin/bash
. /etc/profile
. ~/.bash_profile    #某些系统上没有这个文件,不过加上也没关系
. ~/.barshrc

备注:. /etc/profile的效果和 source /etc/profile效果一样,所以也可以使用source指令

 

建议

在定时脚本里认真检查每一个环境变量,最好写全它的实际路径。

(尤其是python变量)

 

 

参考:https://blog.csdn.net/jiangguilong2000/article/details/38318011?utm_source=copy