如何将 stderr 重定向到 cron 作业中的文件

How to redirect stderr to a file in a cron job

我的 crontab 中有一个这样设置的 cron 作业:

*/1 * * * *  sudo /home/pi/coup/sensor.py  >> /home/pi/sensorLog.txt

它将 stdout 放入 sensorLog.txt,并且它生成的任何 stderr 都会放入电子邮件中。

我希望 stdout 和 stderr 都进入 sensorLog.txt,所以我将 1>&2 添加到 crontab,这应该使 stderr 进入与 stdout 相同的位置。现在看起来像这样:

*/1 * * * *  sudo /home/pi/coup/sensor.py  >> /home/pi/sensorLog.txt 1>&2

现在,stdout 和 stderr 都被放入电子邮件中,而没有向文件中添加任何内容。这与我想要完成的相反。

如何让 stdout 和 stderr 都重定向到文件?

反过来说:

*/1 * * * *  sudo /home/pi/coup/sensor.py  >> /home/pi/sensorLog.txt 2>&1

2>&1 会将标准错误 (2) 重定向到标准输出 (1),而标准输出 (1) 又会重定向到您的日志文件。所以,最后,stderr 和 stdout 都会转到你的 sensorLog.txt