crontab 调用python定时任务不执行,原因彻底分析

您所在的位置:网站首页 python执行不了 crontab 调用python定时任务不执行,原因彻底分析

crontab 调用python定时任务不执行,原因彻底分析

2023-07-25 12:23| 来源: 网络整理| 查看: 265

一、问题   最近,在centoos中设置一个定时任务,调用python,最后发现不执行或者说没有任何输出。

二、分析   我的定时任务最开始是这样,python脚本,写入txt。 在这里插入图片描述   查看/home/zeng目录生成了log.txt。可是,没有任何输出。去/var/log/查看cron日志,定时脚本按时执行了。 在这里插入图片描述   后来一想,python中使用了twilio包,这个安装在我的anaconda base环境下。于是,我加上一条语句 在这里插入图片描述   还是没有任何输出。查找资料,发现大家一致认为crontab执行时的环境变量有问题。于是,我设置定时任务输出了一下crontab env看看。 在这里插入图片描述   crontab的环境变量/usr/bin,所以python是使用linux系统自带的。再查看crontab配置参数/etc/crontab。发现,这里面已经配置好了crontab执行时使用的环境变量来源。如果你不写明调动程序来源或者引入新的环境变量,他就从这里面寻找。 在这里插入图片描述   至此,也就明白了,crontab执行程序时会使用/usr/bin下的变量。默认用户是root,默认路径是/root/。所以,使用crontab要注意:

1、定时语句或者在Shell文件里面获取环境变量值的路径写成绝对路径。写入文件和调用文件也要写成绝对路径。

2、在即将执行的Shell脚本缺省的#!/bin/sh开头换行后的第一行加入两个环境变脸配置文件 #!/bin/sh . /etc/profile . ~/.bash_profile

3、在/etc/crontab中添加环境变量

三、解决   最后,我设置如下执行,成功。只要你调用了anaconda下的python,就可以引用所有包了,不用使用source激活环境。 在这里插入图片描述

参考: https://blog.csdn.net/weixin_36343850/article/details/79217611



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3