cron에 의해 실행되는 stdoutput을 사용하여 파일 덮어쓰기

cron에 의해 실행되는 stdoutput을 사용하여 파일 덮어쓰기

내 crontab에 이 cron이 있습니다.

00 01  *  *  * /srv/python/proj/acquisizione/acquisizioneAOK.sh >> /home/crontab_logs/acquisizioneAOK.out 2>&1; mailx -s "Cron output: acquisizioneAOK" [email protected] < /home/crontab_logs/acquisizioneAOK.out

stdoutput을 파일에 쓴 .out다음 파일이 텍스트로 포함된 이메일을 나에게 보냅니다. 이전 출력에서 ​​파일을 지우는 방법은 무엇입니까? 마지막 크론 실행의 표준 출력이 포함된 이메일을 원합니다.

감사해요

답변1

스크립트가 실행될 때마다 로그 파일을 덮어쓰려면 >>연산자를 연산자로 바꾸십시오 >.

연산자는 >>실행될 때마다 파일에 출력을 추가합니다. 이 접근 방식을 사용하면 파일이 계속 커지게 됩니다.

연산자는 >파일이 실행될 때마다 파일을 "중단"하므로 리디렉션된 출력이 기록되기 전에 기존 데이터가 모두 삭제됩니다.

한 단계 더 나아가 스크립트의 출력 및 오류 스트림을 mailx명령으로 직접 파이프할 수 있습니다.

/srv/python/proj/acquisizione/acquisizioneAOK.sh 2>&1 | mailx -s "Cron output: acquisizioneAOK" [email protected]

답변2

>>에 대한 리디렉션이 추가되고 >가 덮어쓰여집니다. 과거 데이터가 유지되지 않는다면 왜 메일로 전송되지 않는지 궁금합니다.

관련 정보