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