我有一个 python 脚本作为 cron 作业,其调用方式如下
/path/to/python /path/to/myscript myparam
当脚本中出现错误时,cronjob 会默默失败。当我从命令行运行相同的命令时,我会得到一个堆栈跟踪。当作为 cron job 运行时,如何让我的脚本输出堆栈跟踪(或将其写入文件)?我已经设置了变量MAILTO
。我也尝试过
/path/to/python /path/to/myscript myparam 2>&1 >> /path/to/logfile
在 crontab 中但日志文件仍然是空的。
更新:无需输出重定向的调用现在可以正常工作。这不是 Python 脚本的问题,而是 MAILTO crontab 设置中的错误分隔符。请记住:使用逗号,不要在逗号后加空格!
答案1
您使用了错误的顺序。
2>&1
意味着将标准错误重定向到标准输出,并将两者都重定向到终端>> /path/to/logfile
将标准输出重定向到日志文件。您没有提到标准错误,因此它仍然转到终端。
尝试这个:
/path/to/python /path/to/myscript myparam >> /path/to/logfile 2>&1
确保运行此脚本的用户对日志文件具有写权限。