通过cron运行时无法使用python脚本找到文件

时间:2012-02-16 20:13:44

标签: python linux cron

我有一个自动脚本 - 我的意思是,它每10分钟由一个cronjob运行。 奇怪的是:当我手动启动脚本时,总是找到文件并运行它。但是当它由cron作业运行时,它给我带来了很多麻烦。

这些是文件的权利:

-rw-r--r-- 1 dataloader users     181 Dec 19 12:37 Foo.after
-rwxr-xr-x 1 dataloader users   26098 Feb 16 20:56 loader.py

这是loader.py的摘要,它检查Foo.after:

if os.path.exists(self.customer+'.after'):
            print 'customer file exists'
            f = open(self.customer+'.after')

2 个答案:

答案 0 :(得分:6)

cronjob不在与脚本相同的目录/环境中执行。

你可以通过调整你的cronjob来解决这个问题:

* * * * * cd /home/yourdir; ./loader.py

OR

* * * * * /home/mc/dotasks.sh

dotasks.sh包含:

cd /home/yourdir
./loader.py
#anything else you need to do

答案 1 :(得分:0)

首先检查为cron配置的环境,您可以将其作为cron作业本身转储。 * * * * * env> / yourcompletepath / envtxt 现在寻找python版本。它匹配吗寻找PWD值。 从这里你可以cd到你的工作文件夹,然后使用python启动你的文件。 确保python文件正确终止,EOF附近没有任何空格。