averainy's Blog

averainy

02 Sep 2022

每月的第一个周六运行一个cron job

我这里有一个需求,需要每月的第一个周六晚上22点运行一个脚本。Google了半天发现有人给的解决方案是

0 22 1-7 * 6  /usr/bin/sh /root/py3env/src/auto_backup.sh

事实证明这样的写法是错误的,这样写的话每月的1到7号都会执行,周六可能也会执行。
继续检索,发现有人也碰到了同样的问题How to run a cron job on the first weekday of the month。参照他的做法我把我的实现方式改成了下面这个样子:

0 22 * * 6 [ `date +\%d` -le 7 ] && /usr/bin/sh /root/py3env/src/auto_backup.sh

测试了一下完美解决我的问题。