Cron脚本没有运行,尽管手动运行时工作

问题描述:

我知道有很多关于这方面的问题,但我一直在尝试一段时间没有运气的事情。我有一个简单的python testscript,创建一个带有时间戳名称的文件夹。当我手动运行它时它工作正常,但是当我尝试将它放入crontab时没有任何反应。任何想法,我在这里搞乱了吗?这里的脚本:(位于在/ home/EC2用户/ cronscripts)Cron脚本没有运行,尽管手动运行时工作

from subprocess import call 
from time import time 
import math 

call(["mkdir","derp" +str(math.floor(time()))]) 

和的crontab -l产生输出

* * * * * python /home/ec2-user/cronscripts/testscript.py 

我试图把 '根' 到命令,以及,但没有骰子。我也尝试了一些在显式设置脚本文件中的PATH变量时弄得乱七八糟。

From [email protected] Wed Jun 15 19:57:01 2011 
Return-Path: <[email protected]> 
Received: from domU-12-31-38-00-AC-02.compute-1.internal (localhost [127.0.0.1]) 
     by domU-12-31-38-00-AC-02.compute-1.internal (8.14.4/8.14.4) with ESMTP id p5FJv1aS006094 
     for <[email protected]>; Wed, 15 Jun 2011 19:57:01 GMT 
Received: (from [email protected]) 
     by domU-12-31-38-00-AC-02.compute-1.internal (8.14.4/8.14.4/Submit) id p5FJv1Dc006093; 
     Wed, 15 Jun 2011 19:57:01 GMT 
Date: Wed, 15 Jun 2011 19:57:01 GMT 
Message-Id: <[email protected]ernal> 
From: [email protected] (Cron Daemon) 
To: [email protected] 
Subject: Cron <[email protected]> usr/bin/python /home/ec2-user/cronscripts/testscript.py 
Content-Type: text/plain; charset=UTF-8 
Auto-Submitted: auto-generated 
X-Cron-Env: <SHELL=/bin/sh> 
X-Cron-Env: <HOME=/root> 
X-Cron-Env: <PATH=/usr/bin:/bin> 
X-Cron-Env: <LOGNAME=root> 
X-Cron-Env: <USER=root> 

/bin/sh: usr/bin/python: No such file or directory 

这是我在根邮件中找到的最后一个条目。它似乎无法找到python,尽管它确切地说明了它的位置。而当我打印crontab -l时,usr/bin/python确实有一个前导斜杠。我需要在某处更改cron路径吗?

+1

查看系统日志以查看错误 – hvgotcodes 2011-06-15 19:21:34

+0

Jun 15 18:02:01 domU-12-31-38-00-AC-02 CROND [5310] :(根)CMD(/ home/ec2-user/cronscripts/testscript.py) Jun 15 18:03:01 domU-12-31-38-00-AC-02 CROND [5317] :(根)CMD(/home/ec2-user/cronscripts/testscript.py ) – cfrederich 2011-06-15 19:31:02

+0

我在cron日志中发现了这个,所以它明确地尝试做一些事情 – cfrederich 2011-06-15 19:31:20

对crontab中的所有命令使用全限定路径。

0 */2 * * * /full/path/to/python /home/ec2-user/cronscripts/testscript.py 

此外,所有字段都是*?你预计什么时候运行?上面的例子会运行每隔一小时。

+1

'上面的例子每运行一小时都会运行。它会每分钟运行一次。您需要为分钟字段添加一些具体的值。在任何crontab字段中写'*/1'与编写'*' – leonbloy 2011-06-15 19:24:51

+0

是一样的,我只是想让它每分钟运行一次,以便我可以看到它是否工作完全不需要等待 – cfrederich 2011-06-15 19:27:03

+0

@leonbloy,谢谢。更新。 – 2011-06-15 19:29:18