Shell-Script
如何從 crontab 作業向 stdout 和 stderr 添加時間戳?
當我從 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
。)