我的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重定向到文件?
答案 0 :(得分:22)
反过来说:
*/1 * * * * sudo /home/pi/coup/sensor.py >> /home/pi/sensorLog.txt 2>&1
2>&1
会将标准错误(2)重定向到标准输出(1),然后将其重定向到您的日志文件。所以,最后,stderr和stdout都会转到你的sensorLog.txt