我知道 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 运行位于 /home/me/
中的 test_cron.py
脚本,但不运行位于 /home/me/some_folder/
中的脚本。
我已将脚本中的路径更改为绝对路径,但它不会改变任何情况。另外,我尝试使用 root crontab,但它没有改变任何东西。
有人可以将知识和经验的光芒照亮我吗?非常感谢。
最佳答案
cron正在运行crontab(5)来自用户主目录的条目。
您需要适当更改目录,即调用 chdir(2)系统调用(通过内置的 cd
shell,或者在 python 脚本中使用 os.chdir )。
您应该在脚本中查询当前目录(使用 getcwd(3) 或 pwd
命令,或 Python 中的 os.getcwd)。
如果运行命令,还要检查您的PATH
。
关于python - 如果脚本不在主文件夹中,Cron 不会运行 Python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18121733/