如果脚本不在主文件夹中,Cron不会运行Python脚本



我知道cron是反复无常的,我正试图找出如何在linux上处理它。

我有以下用于测试cron的test_cron.py可执行Python脚本:

#!/usr/bin/env python
import os
os.makedirs('test_cron_dir')
f = open('test_cron_dir/test_file','w')
f.write('stuff')
f.close()

我在crontab中添加了两行,以便在两个不同的文件夹中运行脚本:

* * * * * python /home/me/test_cron.py
* * * * * python /home/me/some_folder/test_cron.py

问题是:cron运行位于/home/me/中的test_cron.py脚本,但不运行位于/home/me/some_folder/中的脚本。我已经将脚本中的路径更改为绝对路径,但它不会改变任何情况。此外,我尝试使用根crontab,它不会改变任何内容。

有人能把知识和经验的光芒照在我身上吗?非常感谢。

cron正在用户的主目录中运行crontab(5)条目。

您需要适当地更改目录,即调用chdir(2)syscall(通过cd shell内置,或在您的python脚本中使用os.chdir)

您应该在脚本中查询当前目录(使用getcwd(3)、pwd命令或Python中的os.getcwd)。

如果正在运行命令,请检查您的PATH

最新更新