问题描述
设置一个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

本文探讨了CronTab定时任务中常见的环境变量缺失问题,详细解释了为何手动执行脚本成功,但在CronTab中却无法运行的原因,并提供了解决方案,包括在脚本中加入加载环境变量的命令,以及建议检查并明确指定所有环境变量的实际路径。
650

被折叠的 条评论
为什么被折叠?



