[实践OK]每两周执行一次定时任务

jackxiang 2022-4-27 16:34 | |
crontab这个定时工具单对于日期默认颗粒度是“单”,也就是单天,单周,单月等等,但是如果需要每双周发送一次消息,那么原生态的crontab就做不到了。
正确的写法是:

echo $(date +\%W)   #date +\%W获取当前的周数
17

expr `date +\%W` \% 2    #一般用于整数值计算使用expr做算术运算
1



这个规则的意思就是每双周的周五11点59分,启动DINGdingBot这个脚本。

先说expr,这是一个计算命令,一般用于整数值,比如expr 14 % 9,返回就是5。那么这个脚本的意思就很明白了,先用date +\%W获取当前的周数,如果可以被2整除,就是0,0可以执行后面的语句,如果不能被2整除,那么后面的语句也就不会执行。其实说白了,就是每周五的11点59分,判断一下当前周数是否是2的倍数,如果是就可以去执行脚本,如果不是就无视掉。

最后推荐一个好网站可以查看crontab的效果:
https://tooltt.com/crontab-parse/
另一个工具感觉弱一点,但是验证(50 9 8-14,22-28 * 5好像又是对的,和此文作者说的不符合。):
https://www.matools.com/crontab

,不过这个网站只能看基础的crontab配置,想玩花就不行了。

摘自:https://brucewayne2099.github.io/2020/09/12/%E6%AF%8F%E4%B8%A4%E5%91%A8%E6%89%A7%E8%A1%8C%E4%B8%80%E6%AC%A1%E5%AE%9A%E6%97%B6%E4%BB%BB%E5%8A%A1/

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:http://jackxiang.com/post/11309/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!


最后编辑: jackxiang 编辑于2022-4-27 16:45
评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]