![如何设置在每月最后一个星期日运行的 cronjob?](https://linux22.com/image/179925/%E5%A6%82%E4%BD%95%E8%AE%BE%E7%BD%AE%E5%9C%A8%E6%AF%8F%E6%9C%88%E6%9C%80%E5%90%8E%E4%B8%80%E4%B8%AA%E6%98%9F%E6%9C%9F%E6%97%A5%E8%BF%90%E8%A1%8C%E7%9A%84%20cronjob%EF%BC%9F%20.png)
我正在尝试设置一个 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