我有一个Python脚本作为一个cron工作,这样的调用
/path/to/python /path/to/myscript myparam
当脚本发生错误时,cronjob会自动失败。 当我从命令行运行相同的命令,我得到一个堆栈跟踪。 如何在运行cron作业时将脚本输出到堆栈跟踪(或写入文件)? 我已经设置了MAILTOvariables。 我也尝试过
/path/to/python /path/to/myscript myparam 2>&1 >> /path/to/logfile
在crontab中,但日志文件保持空白。
更新:现在没有输出redirect的调用工作。 这不是python脚本的问题,而是MAILTO crontab设置中的错误分隔符。 记住:使用逗号,不要在逗号后面留空格!
你使用了错误的顺序。
2>&1表示将标准错误redirect到标准输出并同时传送到terminal >> /path/to/logfile将标准输出redirect到日志文件。 你没有提到标准错误,所以还是去了terminal。 尝试这个:
/path/to/python /path/to/myscript myparam >> /path/to/logfile 2>&1
确保运行此脚本的用户具有对日志文件的写入权限。
看看这里通过http://www.velocityreviews.com/forums/t646893-running-a-python-script-from-crontab.html工作类似的sitaution。 添加exception处理,日志logging,邮件和stderr应该可以得到你想要的回溯数据。