How to redirect stderr to a file in a cron job

♀尐吖头ヾ 提交于 2019-12-09 08:49:02

问题


I've got a cron job that is set up like this in my crontab:

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

It puts stdout into sensorLog.txt, and any stderr it generates gets put into an email.

I want both stdout and stderr to go into sensorLog.txt, so I added 1>&2 to the crontab, which is supposed to make stderr go into the same place as stdout. It now looks like this:

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

Now, both stdout and stderr both get put into an email, and nothing gets added to the file. This is the opposite of what I am trying to accomplish.

How do I get both stdout and stderr to get redirected to the file?


回答1:


It's the other way around:

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

2>&1 will redirect standard error (2) to standard output (1) which -in turn - was redirected to your log file. So, at the end, both stderr and stdout will go to your sensorLog.txt



来源:https://stackoverflow.com/questions/34967093/how-to-redirect-stderr-to-a-file-in-a-cron-job

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!