想要在linux中利用crontab去定时执行python脚本,但直接crontab调用python执行时并没有执行脚本。这个问题在网上搜了很多方案
方案一:修改python代码,在crontab中依然直接使用python执行。看了下crontab的执行log,是在正常执行的。但crontab去执行python代码时,失败!
方案二:将python执行代码先写入shell脚本中,然后crontab执行shell脚本。
这个方案看了下crontab的执行log,是在正常执行的。而且如果直接执行shenll脚本是可以正常执行的。但crontab调用shell脚本却依然失败!
另外,shell脚本最好直接调用linux的vim进行编辑,不然在windows下编辑的文本会有隐藏字符跟linux格式不匹配导致执行出现无效字符而失败
方案三:在shell脚本最开始的部分修改为
#! /usr/bin/bash
. /etc/profile
. ~/.bash_profile
cd /home/python3.7/dw_realmoney # python脚本所在目录
python ETL_DW_REALMONEY.py # ETL_DW_REALMONEY.py需要执行的python脚本
这样,crontab在执行脚本的时候,就能够读到用户的环境变量参数
参考资料:https://blog.csdn.net/yan88888888888888888/article/details/83783968