我知道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
。