通过crontab执行python脚本

时间:2011-03-02 22:00:05

标签: python cron execution crontab

我的python中的脚本每分钟都没有通过crontab运行。 我的脚本具有执行权限,然后在python中调用另外两个脚本。


This is the content of my crontab (#crontab -l):
*/1 * * * * /usr/bin/rsm/samplesMonitor.py
谢谢你们。

4 个答案:

答案 0 :(得分:4)

检查/var/log/syslog是否有错误。

DIAGNOSTICS
       cron requires that each entry in a crontab end in a 
       newline character. If the last entry in a crontab is 
       missing a newline (ie, terminated by  EOF),  cron  will 
       consider the crontab (at least partially) broken. A 
       warning will be written to syslog.

更新:根据您的日志消息,脚本正在运行但返回错误代码。如果您安装了邮件代理,Cron会通过电子邮件向您发送邮件。

尝试:

  1. 安装邮件代理,例如:apt-get install exim4
  2. 将您的cron行更改为log to file,如下所示:

    * * * * * /usr/bin/rsm/samplesMonitor.py 2>&1 >> /tmp/script.log
    

  3. 更新2:我重新阅读了您的问题,这让我觉得您可能遇到了python导入问题。你说你的脚本调用了另外两个脚本。我的建议是测试从/运行你的脚本。 Python有一个默认行为来查找当前工作目录中的导入,因此请确保您的脚本可以从任何路径位置运行。

    在crontab中,您可以通过从另一个shell进程中调用脚本来设置起始工作目录。例如:

    bash -c "cd THE_WORKING_DIR;/usr/bin/rsm/samplesMonitor.py"
    

答案 1 :(得分:1)

我认为它应该是*/1,而不是*\1

答案 2 :(得分:0)

它应该是*/1而不是*\1(正斜杠而不是反斜杠)。另外,确保路径正确; / usr / bin下通常没有子目录。

答案 3 :(得分:0)

如果你想让它每分钟运行一次,就这样做吧

* * * * * /usr/bin/rsm/samplesMonitor.py