提前感谢您查看我的问题社区,
我的python测试脚本不会从我的Centos 7 Crontab执行。如果在包含目录中调用此脚本,或者从具有完整路径的根/任何其他目录调用,则此脚本将手动执行。我的Centos Python位置是/bin/python
。这包含在我的python脚本的顶部。
Crontab本身似乎工作正常:
* * * * * root date >> /home/test.log
将输出重定向到test.log而不会出现问题。
请找到我的Crontab和测试脚本。
/ etc / crontab中的Crontab
SHELL=/bin/bash
#PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
* * * * * root python /scripts/test1.py
至于/scripts/test1.py中的python脚本:
#!/bin/python
import os
os.system('date >> testlog.txt')
您可以提供的任何意见/建议我将非常感谢。 谢谢你,
答案 0 :(得分:0)
cron
创建的环境通常远不及shell中发现的环境。为此,您最好将完整的路径信息放在命令本身中(以便不依赖于全局crontab
设置)。
此外,工作目录也可能不是您所期望的,因此最好在Python脚本中完全指定文件路径,或者最好是将所有控制信息放在一个地方,确保它已设置好在crontab
条目中。
* * * * * ( cd /tmp ; root /bin/python /scripts/test1.py )
答案 1 :(得分:0)
一种方法是从shell脚本触发python脚本。在shell脚本中,在调用python脚本之前导出PATH变量:
python_trigger.sh
export PATH=/sbin:/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
...python -u <your script>...
并配置您通常使用cron执行的shell脚本。