crontab 작업에서 stdout 및 stderr에 타임스탬프를 추가하는 방법은 무엇입니까?

crontab 작업에서 stdout 및 stderr에 타임스탬프를 추가하는 방법은 무엇입니까?

cron 작업에서 스크립트를 호출할 때 타임스탬프 추적을 두 개의 다른 파일에 저장하고 싶습니다. stdout용 파일 하나 script.log와 stderr용 파일 하나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

한 가지 방법은 먼저 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.)

관련 정보