Bash
成功執行後crontab通知?
- 我有一個每小時執行一個 R 腳本的 cron 作業。
- 該腳本檢查每天在未知時間更新的線上數據源。
- 如果數據源未更新,則腳本會以錯誤程式碼退出。
- 如果源更新,腳本正常執行,沒有任何錯誤程式碼。
- 腳本完成後,我需要開始手動工作流程。
- 我想在 cronjob 完成時收到通知,這樣我就知道什麼時候開始我的工作流程。
我考慮過的事情,但發現是hacky/不正確的:
- 從 R 腳本中發送電子郵件
- 腳本成功時生成錯誤
我想做的事:
- 執行成功後發送自定義的cron通知郵件
- 我還沒有考慮過的更好的東西
在 cron 作業的命令行末尾添加如下內容:
&& date | sendmail -s "R job completed successfully" you@example.com
這將通過電子郵件向您發送成功警報,並且非零退出程式碼將由 cron 正常處理。
是, ,或任何您想用來生成消息正文的佔位
date
符。echo``printf``cat
順便說一句,我使用
sendmail
而不是sendmail
命令行選項處理比 do 的各種實現更一致或者,只需讓您的 R 作業在標準輸出上產生輸出。除非配置為不這樣做,否則 cron 會將 stdout 和 stderr 從 cron 作業通過電子郵件發送給作業的所有者。
不需要顯式使用
sendmail
- 它只允許您設置主題、收件人地址、發件人地址、添加標題等。
cron
只會發送給作業的所有者(您)或在 crontab 的 MAILTO 變數中設置的任何電子郵件地址。cron 還將設置 Subject: 以包含Cron <user@host>
後跟 cron 執行的命令。