cronジョブでスクリプトを呼び出すときに、タイムスタンプトレースを2つの異なるファイルに保存したいと思います。 stdout用のファイル1つとscript.log
stderr用のファイル1つscript.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
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
2番目に書き込まれますts
。)