Monitoring

cron 有哪些替代方案可以執行計劃的作業?

  • April 13, 2022

我們正在使用 cron 來管理我們在多個位置的備份和其他作業。到目前為止,使用 chef 填充 cron.daily、cron.hourly 等文件對我們來說效果很好,但存在一些問題:

  • 我不想僅僅為了接收 cron 輸出而管理系統上的郵件伺服器
  • 如果沒有任何問題,我希望能夠將輸出放入我的 cron 作業中而不會收到有關它們的電子郵件
  • 我不想檢查 /var/log/messages 來查看作業是否在沒有輸出的情況下失敗
  • 我不想必須登錄系統才能發現備份作業仍在執行

最理想的情況是,我想要一個基於 Web 的前端,我可以用它來查看這些資訊,或者作為 cron 的擴展或完全替代。

我可以通過一些腳本自己解決上述問題,但我確信這是其他人已經解決的問題。

請注意,我承認這是與完成備份後驗證備份完全不同的問題。

您可以使用Resque(帶有內置 Web 界面)來管理作業。查看 Resque Railscast 以了解它的實際效果。

然後使用 ruby​​ gemresque-scheduler在預定時間將作業添加到隊列中。

有一篇很好的部落格文章: “使用 Resque 為 Rails 應用程序執行 Cron 任務”

也許這不是您所追求的完美契合,但我最近的方法是結合兩個 Ruby gem 和一個 Web 服務。

首先是 gem 它為您提供了一個乾淨的 ruby​​ 界面來安排 cron 作業(因此,不是 cron 替代品,只是頂部的一層)。

接下來是備份gem,它提供了一套可靠的工具來非常巧妙地管理備份(包括到雲儲存位置)。當任務失敗和/或成功時,備份也會向您發送電子郵件(由您來配置)。

最後一個難題是SendGrid——雖然他們推出了付費計劃,但他們確實有一個免費計劃,每天可以發送 200 封電子郵件。我當然不會為這個腳本向他們的伺服器徵稅,所以它很適合我。他們可能需要幾個小時來確認一個帳戶,但是一旦設置好,我就沒有問題了。

如果您願意,很高興分享一些範例腳本。

引用自:https://serverfault.com/questions/306249