Python脚本放在crontab上时未执行

2024-04-19 14:23:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我写了一个python脚本,它读取一些日志,然后将所需的信息写入csv文件。它如果我用python myscript.py手动执行它,工作正常。但是当我通过cron调用它时,它就不工作了。 我试过:

* * * * * python /path/to/myscript.py
* * * * * /path/to/myscript.py
* * * * * /usr/bin/python /path/to/myscript.py

在几次失败的尝试之后,我将python myscript.py放入一个shell脚本中并手动运行它,但在cron中它仍然没有工作。在


Tags: 文件csvtopathpy脚本信息bin
3条回答
  • Tpye“哪个python3”(如果您使用的是python3或python3.6,那么您需要使用哪个python3)
  • 它将显示python路径:/bin/python。在
  • 在Cron job-***/bin/python中设置值

如果您想在cronjob的帮助下在bash脚本中执行python文件。您应该使用python的完整路径(示例:/bin/python/path of python file/文件.py)bash脚本的内部。在

确保在python脚本中不使用任何类型的相对路径。这会导致脚本退出并出现错误。在

因此,请确保在脚本中不要使用../to/something,而是使用/path/to/something。在

ie公司

with open('../file.txt', 'r') as f:

应该变成

^{pr2}$

cron的默认shell不是/bin/bash,因此需要提供Python可执行文件的完整路径。
检查which python的输出。在我的机器上是/usr/bin/python
假设这样,您的cron作业条目应该是:

* * * * * /usr/bin/python /path/to/myscript.py

有时您希望在运行脚本之前使用virtualenv或设置一些环境变量或更改工作目录。
在这种情况下,在bash中创建包装器脚本很方便:

^{pr2}$

假设您将上述脚本保存到/path/to/myscript_wrapper.sh,那么您的cron作业条目将如下所示:

* * * * * /bin/bash /path/to/myscript_wrapper.sh

相关问题 更多 >