Linux 技术手札

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

加入以下一行:

储存后离开编辑器便完成了。

Exit mobile version