Python脚本不在crontab中执行

时间:2012-08-05 13:15:37

标签: python linux crontab

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

当我进入目录并使用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保存到该数据库。手动运行时脚本可以正常运行,但不能自动运行。

3 个答案:

答案 0 :(得分:2)

我通过这样做解决了我的问题

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

并且py文件应该是可执行的

chmod +x twitter.py

答案 1 :(得分:1)

您可能需要添加

#!/usr/bin/python

到主脚本的开头,带有你的python解释器的位置。

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

chmod +x <main script name .py>

希望这有帮助

答案 2 :(得分:0)

发送到终端的cron脚本的任何输出(即stdio或stderr)都将发送给脚本注册的帐户。

您可以从错误消息中看到它正在尝试发送此邮件,但“未安装MTA”,因此它会丢弃所有诊断消息。

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

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

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

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

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

会解决一半问题..