크론 이메일 출력

크론 이메일 출력

한 달에 한 번 실행하는 이 스크립트가 있고 출력을 내 이메일로 보내고 싶습니다.

이렇게 수동으로 실행하면 표준 출력이 내 이메일로 전송됩니다.

./monthly_mail.sh | mail -s "Mail purged" [email protected]

하지만 다음 줄을 내 항목에 추가하면 crontab빈 이메일만 받게 됩니다. 스크립트의 stdoutput이 파이프로 연결되지 않는 이유는 무엇입니까 mail?

* * 2 * * /var/mail/monthly_mail.sh | /usr/bin/mail -s "Mail purged" [email protected]

답변1

시도해 볼 만한 몇 가지 작업이 있습니다.

  1. 올바른 crontab철자

    파일에 넣는 경우 /etc/crontabcron 작업을 실행하는 사용자를 지정해야 합니다. 따라서 라인은 다음과 같아야 합니다.

    * * 2 * * root /var/mail/monthly_mail.sh | /usr/bin/mail -s "Mail purged" [email protected]
    

    명령이 root실행될 사용자입니다. 필요에 따라 변경하십시오.

  2. cron 외부에서 이메일 테스트

    파일에서 cron을 실행하려는 사용자로 명령을 실행할 수 있는지 확인하십시오. /etc/crontab먼저 쉘에서 독립형으로 실행한 다음 이를 crontab으로 이동하십시오.

    $ /var/mail/monthly_mail.sh | /usr/bin/mail -s "메일 삭제됨"[이메일 보호됨]

  3. 출력을 확인하세요MAILTO

    Cron에는 일반적으로 STDOUT 또는 STDERR에서 생성된 모든 출력을 얻을 수 있는 기본 사용자가 있습니다. 사용자에게 이메일로 전송된 오류 메시지가 있는지 확인하세요. 이를 통해 명령이 실행되지 않은 이유를 알 수 있습니다. 이 이메일 주소는 일반적으로 cron에서 다음과 같이 구성됩니다.

    [email protected]
    

답변2

다른 사이트에서는 다음과 같이 2>&1before 추가를 제안합니다 |.

* * 2 * * root /var/mail/monthly_mail.sh 2>&1 | /usr/bin/mail -s "Mail purged" [email protected]

관련 정보