
- 매시간 R 스크립트를 실행하는 cron 작업이 있습니다.
- 이 스크립트는 매일 알 수 없는 시간에 업데이트되는 온라인 데이터 소스를 확인합니다.
- 데이터 소스가 업데이트되지 않으면 스크립트가 오류 코드와 함께 종료됩니다.
- 소스가 업데이트된 경우에는 오류 코드 없이 스크립트가 정상적으로 실행됩니다.
- 스크립트가 완료되면 수동 워크플로를 시작해야 합니다.
- cronjob이 완료되면 알림을 받아 워크플로를 시작할 시기를 알고 싶습니다.
내가 하려고 생각했지만 끔찍하거나 잘못된 것으로 판명된 일:
- R 스크립트에서 이메일 보내기
- 성공하면 스크립트에서 오류가 발생합니다.
내가 하고 싶은 것:
- 성공적인 실행 후 사용자 정의된 크론 알림 이메일 보내기
- 나는 더 나은 것을 생각하지 않았습니다
답변1
cron 작업 명령줄 끝에 다음을 추가합니다.
&& date | sendmail -s "R job completed successfully" [email protected]
그러면 성공 알림이 이메일로 전송되며, 0이 아닌 종료 코드는 cron에서 정상적으로 처리됩니다.
, , 또는 메시지 본문을 생성하는 데 사용하려는 모든 것에 대한 date
자리 표시자입니다 .echo
printf
cat
그건 그렇고, 다른 버전의 명령줄 옵션이 다른 구현보다 명령줄 옵션을 더 일관되게 처리하기 때문에 sendmail
대신 사용하고 있습니다 .mail
sendmail
mail
또는 R 작업이 표준 출력으로 출력을 생성하도록 합니다. 그렇게 하지 않도록 구성하지 않는 한 cron은 cron 작업의 stdout 및 stderr을 작업 소유자에게 이메일로 보냅니다.
명시적인 사용 sendmail
은 필요하지 않습니다. 제목, 주소, 보낸 사람 주소, 헤더 추가 등을 설정할 수 있습니다.
cron
작업 소유자(귀하) 또는 crontab의 MAILTO 변수에 설정된 이메일 주소로만 전송됩니다. cron은 또한 주제를 설정합니다: Contains Cron <user@host>
다음에 cron이 실행하는 명령이 옵니다.