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

时间:2013-08-08 08:51:42

标签: python linux cron

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

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

#!/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运行位于test_cron.py的{​​{1}}脚本,但不运行位于/home/me/的脚本。 我已经将脚本中的路径更改为绝对路径,但它不会改变任何情况。此外,我试图使用root crontab,它不会改变任何东西。

任何人都可以在我身上发现知识和经验吗?非常感谢。

1 个答案:

答案 0 :(得分:0)

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

您需要正确更改目录,即调用chdir(2)系统调用(通过cd shell内置,或使用os.chdir调用python脚本内部。)

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

同时检查PATH是否正在运行命令。