cron에 오류 로그에 날짜가 포함되도록 설정

cron에 오류 로그에 날짜가 포함되도록 설정

다음 크론 작업을 실행하고 있습니다.

/home/ubuntu/scripts/austria/archive.sh >> /home/ubuntu/logs/austria/archive.log 2>> /home/ubuntu/logs/austria/archive.err

스크립트가 실행될 때마다 일반 로그 파일이 생성되고, 오류가 발생하면 .err 파일을 오류로 업데이트합니다. 그런데 오류에 잘못된 날짜도 포함될 수 있는지 궁금합니다.존재하다통나무. 저는 crontab을 처음 사용하는데 이 문제가 발생하는 데 어려움을 겪고 있습니다. 감사해요! !

답변1

입력에 타임스탬프 접두사를 추가하는 ts(1)다른 유사한 유틸리티 로 출력을 파이프합니다 .moreutils

% (echo hi; sleep 3; echo there) | ts
Aug 28 18:52:42 hi
Aug 28 18:52:45 there
% 

따라서 표준 오류에 대한 타임스탬프만 원한다고 가정합니다.

...archive.sh 2>&1 >>.../out.log | ts >>.../err.log

이는 매우 까다로우며 쉘 리디렉션이 작성된 대로 정확하게 작동하는 것이 중요합니다. 이것은 쉘 리디렉션을 확인하는 데 사용하는 것입니다.

$ perl -le 'print "out"; warn "err!\n"' 2>&1 >> out | sed 's/^/blah /' > err
$ cat out
out
$ cat err
blah err!

또 다른 옵션은 출력을 로 파이프하는 것입니다 logger. 이 경우 syslog는 로그 앞에 타임스탬프를 붙인 다음 syslog 데몬 설정에 따라 일부 로그 파일에 로그를 덤프합니다.

archive.sh또 다른 옵션은 stderr로 전송된 모든 내용을 포함하도록 적절한 date호출 출력을 직접 편집하는 것입니다 .

echo `date` oh no >&2

관련 정보