0

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

我有以下test_cron.py用于测试 cron 的可执行 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 运行test_cron.py位于 中的脚本,/home/me/但不运行位于/home/me/some_folder/. 我已将脚本中的路径更改为绝对路径,但它并没有改变任何情况。另外,我尝试使用 root crontab,但它并没有改变任何东西。

任何人都可以将知识和经验的光芒照耀在我身上吗?非常感谢。

4

1 回答 1

0

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

您需要适当地更改目录,即调用chdir(2)系统调用(通过cdshell 内置,或在 python 脚本中使用os.chdir)。

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

还要检查您PATH是否正在运行命令。

于 2013-08-08T09:05:11.020 回答