如何设置在每月最后一个星期日运行的 cronjob?

如何设置在每月最后一个星期日运行的 cronjob?

我正在尝试设置一个 cronjob 在每个月的最后一个星期日运行。这就是我所取得的成就。

目前,每周日晚上 10 点运行。

0 22 * * 0 /usr/basys_bin/clean_cups_cache.sh

答案1

无论是在脚本的顶部,还是作为单独的脚本,您都可以设置安全措施以确保它仅在该月的最后一周运行。

例如,将其创建为类似的内容/usr/local/bin/lastweekofmonth

#!/bin/bash
# Exit 0 ("OK") iff we are in the last seven days of a month
#
today=$(date +%d)                             # Day number today
nextweek=$(date --date 'now + 7 days' +%d)    # Day number next week

[[ ${today#0} -gt ${nextweek#0} ]]            # Implicit exit "OK" if today > next week

请记住使其可执行 ( chmod +x /usr/local/bin/lastweekofmonth)

crontab然后你就可以在你的条目中使用它

0 22 * * 0 /usr/local/bin/lastweekofmonth && /usr/basys_bin/clean_cups_cache.sh

相关内容