![crontab 작업에서 stdout 및 stderr에 타임스탬프를 추가하는 방법은 무엇입니까?](https://linux55.com/image/160061/crontab%20%EC%9E%91%EC%97%85%EC%97%90%EC%84%9C%20stdout%20%EB%B0%8F%20stderr%EC%97%90%20%ED%83%80%EC%9E%84%EC%8A%A4%ED%83%AC%ED%94%84%EB%A5%BC%20%EC%B6%94%EA%B0%80%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
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
.)