我有一个自动脚本 - 我的意思是,它每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')
答案 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附近没有任何空格。