cron
tar
나는 다음 을 사용하여 폴더를 압축하는 작업을 매일 실행합니다 . 나는 tar
그것이 매일 stdout에 지속적으로 기록되고 있음 을 발견했습니다 ~/dead.letter
. 기록된 내용은 수동으로 실행할 때 명령줄에 표시되는 압축 파일 목록일 뿐입니다 tar
.
검색 dead.letter
결과 이는 일부 편지가 성공적으로 전송되기 전에 중단되는 것과 관련이 있는 것으로 나타났습니다. 컴퓨터의 내용을 모니터링하고 특정 조건에서 이메일을 보내는 데몬으로 실행되는 쉘 스크립트가 있습니다. 다음 명령을 사용하여 데몬을 시작합니다.
setsid ~/send_mail_on_certain_event.sh >~/sendmail.log 2>&1 < /dev/null &
이것은 내 컴퓨터에서 내가 사용하는(실제로 사용하는) 유일한 장소 mail
이며 예상대로 작동합니다(원하는 이메일을 받습니다). 이것이 작업의 출력 쓰기 ssmtp
와 관련이 있는지는 모르겠습니다 .cron
dead.letter
답변1
cron 작업이 실패하거나 출력이 있으면 cron은 이를 메일 작업 사용자에게 메일로 보내려고 시도합니다. 그를 위해 메일을 구성할 때.
표준 출력에 정보를 쓰는 tar 명령이 있지만 표준 출력을 리디렉션하는 사람은 없습니다. 모든 crontab 작업의 모든 stdout 및 stderr을 /dev/null(또는 출력에 관심이 있는 경우 일부 로그 파일)로 리디렉션해야 합니다.
예
10 0 * * * tar tvf /tmp/tar.tst /home/era >/dev/null 2>&1
약간 어리석은 일입니다. tar에 -v 플래그를 사용하여 tar가 쓴 모든 내용을 자세히 설명하고 삭제하도록 요청하세요. 하지만 이것은 다음과 같은 것을 테스트하고 싶을 때를 위한 것입니다.
10 10 * * * tar tvf /tmp/tar.tst /home/era
아니면 테스트해볼 수도 있어요
* * * * * echo "Hello and Goodbye Era"
사용자 계정에서 메일을 찾아보세요.