当我从 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
?
答案1
一种方法是先重定向 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
。)