Bash

成功執行後crontab通知?

  • December 10, 2021
  • 我有一個每小時執行一個 R 腳本的 cron 作業。
  • 該腳本檢查每天在未知時間更新的線上數據源。
  • 如果數據源未更新,則腳本會以錯誤程式碼退出。
  • 如果源更新,腳本正常執行,沒有任何錯誤程式碼。
  • 腳本完成後,我需要開始手動工作流程。
  • 我想在 cronjob 完成時收到通知,這樣我就知道什麼時候開始我的工作流程。

我考慮過的事情,但發現是hacky/不正確的:

  • 從 R 腳本中發送電子郵件
  • 腳本成功時生成錯誤

我想做的事:

  • 執行成功後發送自定義的cron通知郵件
  • 我還沒有考慮過的更好的東西

在 cron 作業的命令行末尾添加如下內容:

&& date | sendmail -s "R job completed successfully" you@example.com

這將通過電子郵件向您發送成功警報,並且非零退出程式碼將由 cron 正常處理。

是, ,或任何您想用來生成消息正文的佔位date符。echo``printf``cat

順便說一句,我使用sendmail而不是mail因為各種版本的sendmail命令行選項處理比 do 的各種實現更一致mail


或者,只需讓您的 R 作業在標準輸出上產生輸出。除非配置為不這樣做,否則 cron 會將 stdout 和 stderr 從 cron 作業通過電子郵件發送給作業的所有者。

不需要顯式使用sendmail- 它只允許您設置主題、收件人地址、發件人地址、添加標題等。

cron只會發送給作業的所有者(您)或在 crontab 的 MAILTO 變數中設置的任何電子郵件地址。cron 還將設置 Subject: 以包含Cron <user@host> 後跟 cron 執行的命令。

引用自:https://unix.stackexchange.com/questions/680903