【问题标题】:Can't find file with python script when run via cron通过cron运行时找不到带有python脚本的文件
【发布时间】:2012-02-16 20:13:44
【问题描述】:

我有一个自动化脚本 - 我的意思是,它由 cronjob 每 10 分钟运行一次。 奇怪的是:当我手动启动脚本时,总是会找到并运行该文件。但是当它通过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')

【问题讨论】:

  • 脚本很可能没有在您认为它在 cron 作业中的目录中运行

标签: python linux cron


【解决方案1】:

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

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

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

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

dotasks.sh 包含:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2018-08-23
      • 2011-03-27
      • 1970-01-01
      • 2019-12-24
      • 2020-05-30
      • 1970-01-01
      • 1970-01-01
      • 2014-06-20
      • 2020-11-10
      相关资源
      最近更新 更多