Python脚本没有在crontab中执行

Python脚本没有在crontab中执行

问题描述:

所以我试图让我的服务器每小时执行一次Python脚本。Python脚本没有在crontab中执行

当我进入目录并使用python twitter.py运行它时,它工作正常。

不过,我在crontab中该条目和它不工作:

0 * * * * /run/twitterparse/twitter.py > /run/twitterparse 

我想拥有它执行每隔一小时,在小时。

下面是输出到syslog:

Aug 5 13:00:01 localhost CRON[11474]: (root) CMD (/run/twitterparse/twitter.py >/run/twitterparse/) 

Aug 5 13:00:01 localhost CRON[11473]: (CRON) info (No MTA installed, discarding output) 

现在是什么应该做的是访问数据库,并从Web到数据库中保存的信息。该脚本在手动运行时很好,但不会自动运行。

+2

这是可执行文件&有一个hashbang,对不对? – Jonatan 2012-08-05 13:17:12

+0

是否有任何环境变量需要设置才能使'twitter.py'工作? – unutbu 2012-08-05 13:26:03

我固定我的问题做这个

0 * * * * python /run/twitterparse/twitter.py > /run/twitterparse 

和PY文件应该是可执行

chmod +x twitter.py 
+0

添加Python做到了。 – 2012-08-05 16:04:48

你可能需要

#!/usr/bin/python 

添加到主脚本的开头,用你的Python解释器的位置。

并更改脚本的权限为可执行

chmod +x <main script name .py> 

希望这有助于

+0

补充说,做了chmod,仍然没有运气,数据库中没有数据。 – 2012-08-05 15:06:16

+0

我相信usr/bin/python是我的Python解释器 – 2012-08-05 15:06:40

一个cron脚本,进入到终端的任何输出(即标准输入输出或标准错误)发送到谁是人帐户的脚本是注册下。

您可以从错误消息中看到它正试图发送此邮件,但是“没有安装MTA”,因此它将放弃所有诊断消息。

您的第一步是解决MTA问题,以便您可以收到邮件或确保将stdio和stderr写入日志文件。

我能看到的一个明显问题是输出被导向到非文件。

/run/twitterparse/twitter.py > /run/twitterparse 

是不是/ run/twitterparse文件夹?我想:

/run/twitterparse/twitter.py > /run/twitterparse/ouput.txt 

就解决一半的问题..