Crontab 每月最後一天執行 Shell Script

Crontab 自動執行可以設定在每月的某一天執行, 如果遇到需要在每個月最後一天執行一次的情況, crontab 則沒有這個功能, 這時可以用 Shell Script (其他語言的做法也一樣) 檢查今天是否當月最後一天來解決, 以下是具體做法。

首先建立一個 Wrapper Script, 加入以下內容:

wrapper.sh


這個 Wrapper Script 很簡單, 第三行會取得明天的日期並放到 $DAY 變數, 然後檢查 $DAY 是否 1, 如果明天的日子是 1 號, 那麼今天便是本月最後一天。如果是當月最後一天, 第 7 行會執行原來想要執行的 Shell Script, 上面例子是 /root/my-script.sh.

下一步是建立 crontab, 每個月最後一天只會有 28, 29, 30 及 31 日, 所以會設定每月的 28, 29, 30 及 31 日執行, 或者不想麻煩, 設定每天執行一次也可以, 編輯 crontab:

# crontab -e

加入以下一行:

儲存後離開編輯器便完成了。


Leave a Reply