Shell-Script

如何從 crontab 作業向 stdout 和 stderr 添加時間戳?

  • September 5, 2019

當我從 cron 任務呼叫腳本時,我想將時間戳跟踪放入兩個不同的文件中。一個文件用於 stdout script.log,另一個用於 stderrscript.err

使用此 cron 行,我可以在文件上獲得時間戳script.log,但不能使用script.err

*/1 * * * * ((/home/user/script.sh) | ts "\%H:\%M:\%.S ->") 2>>/home/user/script.err >> /home/user/script.log

我如何也可以添加時間戳script.err

一種方法是先重定向ts的stdout,然後將管道的stderr重定向到stdout,再管道到另一個ts::

*/1 * * * * (/home/user/script.sh | ts "\%H:\%M:\%.S ->" >> /home/user/script.log) 2>&1 | ts "\%H:\%M:\%.S ->" >> /home/user/script.err

(儘管這樣,第一個的 stderr 輸出ts也將被記錄為第二個ts。)

引用自:https://unix.stackexchange.com/questions/539177