Python Cron作业未执行

时间:2015-04-03 08:21:56

标签: python cron

我在Ubuntu 14.05上设置了一个cron作业来执行Python脚本。这个Python脚本应该获取一些数据,将其存储在数据库中并通过Boxcar向我的iPhone发送通知。问题是,我没有收到任何通知。另外,我检查了我的数据库。没有添加新数据,所以我很确定脚本没有被执行。

我使用了以下命令:sudo crontab -e并输入以下内容:

30 09 * * * /usr/bin/python /home/jnevens/code/main.py

这应该每天9:30执行main.py,对吗?

我的Python代码如下:

from tweet_mining import tweetFetcher
from rail import collectSchedules
from datetime import date, timedelta
from urllib import urlencode
from urllib2 import Request, urlopen

def go():
    twitter = tweetFetcher()
    tweetCount = twitter.main()

    delta = timedelta(days=1)
    d = date.today() - delta
    collectSchedules(d, d)
    push_not('Done!', 'Collected ' + str(tweetCount) + ' tweets')
    return

def push_not(title, message):
    url = 'https://new.boxcar.io/api/notifications'
    values = {'user_credentials' : '####',
              'notification[title]' : title,
              'notification[sound]': 'echo',
              'notification[long_message]': message}
    data = urlencode(values)
    req = Request(url, data)
    response = urlopen(req)
    return response.read()

go()

我是否需要重新启动cron作业才能开始工作?还有别的我做错了吗?

2 个答案:

答案 0 :(得分:1)

如果服务器启用了邮件路由,请确保在crontab中设置了一个电子邮件地址,然后您就可以收到带有输出的邮件。

MAILTO=cron_output@example.com

还要确保将错误重定向到stdout。

30 09 * * * /usr/bin/python /home/jnevens/code/main.py 2>&1

或者,将输出重定向到本地日志文件并检查其中的内容。

如果可以,请在测试期间每分钟运行一次脚本,以便您可以实时查看出现的问题。通常问题是环境和/或shell环境与cron运行的环境之间的PATH有所不同。

答案 1 :(得分:0)

我总是在第一个脚本行中添加解释器的路径

#!/usr/bin/python" 

在cron文件中没有。也许这是一个问题。

你使用的是Ubuntu,但在你的例子中的Centos这一节:“/ usr / bin / python”告诉cron deamon:用户运行脚本的权限。