web-dev-qa-db-fra.com

Comment rediriger stderr vers un fichier dans un travail cron

J'ai un travail cron qui est configuré comme ceci dans mon crontab:

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

Il place stdout dans sensorLog.txt, et tout stderr qu'il génère est mis dans un e-mail.

Je veux que stdout et stderr entrent dans sensorLog.txt, j'ai donc ajouté 1>&2 à la crontab, qui est censée faire passer stderr au même endroit que stdout. Cela ressemble maintenant à ceci:

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

Maintenant, stdout et stderr sont tous les deux mis dans un e-mail, et rien n'est ajouté au fichier. C'est l'opposé de ce que j'essaie d'accomplir.

Comment obtenir à la fois stdout et stderr pour être redirigé vers le fichier?

16
PortMan

C'est l'inverse:

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

2>&1 redirigera l'erreur standard (2) vers la sortie standard (1) qui, à son tour, a été redirigée vers votre fichier journal. Donc, à la fin, stderr et stdout iront à votre sensorLog.txt

31
mauro