성공적인 crontab 실행 후 알림을 보내시겠습니까?

성공적인 crontab 실행 후 알림을 보내시겠습니까?
  • 매시간 R 스크립트를 실행하는 cron 작업이 있습니다.
  • 이 스크립트는 매일 알 수 없는 시간에 업데이트되는 온라인 데이터 소스를 확인합니다.
  • 데이터 소스가 업데이트되지 않으면 스크립트가 오류 코드와 함께 종료됩니다.
  • 소스가 업데이트된 경우에는 오류 코드 없이 스크립트가 정상적으로 실행됩니다.
  • 스크립트가 완료되면 수동 워크플로를 시작해야 합니다.
  • cronjob이 완료되면 알림을 받아 워크플로를 시작할 시기를 알고 싶습니다.

내가 하려고 생각했지만 끔찍하거나 잘못된 것으로 판명된 일:

  • R 스크립트에서 이메일 보내기
  • 성공하면 스크립트에서 오류가 발생합니다.

내가 하고 싶은 것:

  • 성공적인 실행 후 사용자 정의된 크론 알림 이메일 보내기
  • 나는 더 나은 것을 생각하지 않았습니다

답변1

cron 작업 명령줄 끝에 다음을 추가합니다.

&& date | sendmail -s "R job completed successfully" [email protected]

그러면 성공 알림이 이메일로 전송되며, 0이 아닌 종료 코드는 cron에서 정상적으로 처리됩니다.

, , 또는 메시지 본문을 생성하는 데 사용하려는 모든 것에 대한 date자리 표시자입니다 .echoprintfcat

그건 그렇고, 다른 버전의 명령줄 옵션이 다른 구현보다 명령줄 옵션을 더 일관되게 처리하기 때문에 sendmail대신 사용하고 있습니다 .mailsendmailmail


또는 R 작업이 표준 출력으로 출력을 생성하도록 합니다. 그렇게 하지 않도록 구성하지 않는 한 cron은 cron 작업의 stdout 및 stderr을 작업 소유자에게 이메일로 보냅니다.

명시적인 사용 sendmail은 필요하지 않습니다. 제목, 주소, 보낸 사람 주소, 헤더 추가 등을 설정할 수 있습니다.

cron작업 소유자(귀하) 또는 crontab의 MAILTO 변수에 설정된 이메일 주소로만 전송됩니다. cron은 또한 주제를 설정합니다: Contains Cron <user@host>다음에 cron이 실행하는 명령이 옵니다.

관련 정보