在 python cronjobs 中捕获错误

chi*_*org 2 python cron

我有一个 python 脚本作为一个像这样调用的 cron 作业

/path/to/python /path/to/myscript myparam
Run Code Online (Sandbox Code Playgroud)

当脚本中出现错误时,cronjob 会默默地失败。当我从命令行运行相同的命令时,我会得到一个堆栈跟踪。作为 cron 作业运行时,如何使我的脚本输出堆栈跟踪(或将其写入文件)?我已经设置了MAILTO变量。我也试过把

/path/to/python /path/to/myscript myparam 2>&1 >> /path/to/logfile
Run Code Online (Sandbox Code Playgroud)

在 crontab 中,但日志文件仍为空。

更新:没有输出重定向的调用现在可以工作了。这不是 python 脚本的问题,而是 MAILTO crontab 设置中的错误分隔符。记住:使用逗号,不要在逗号后面加空格!

qua*_*nta 5

您使用了错误的顺序。

  • 2>&1 意味着将标准错误重定向到标准输出和终端
  • >> /path/to/logfile将标准输出重定向到日志文件。你没有提到标准错误,所以它仍然到终端。

尝试这个:

/path/to/python /path/to/myscript myparam >> /path/to/logfile 2>&1
Run Code Online (Sandbox Code Playgroud)

确保运行此脚本的用户对日志文件具有写入权限。