技术解析

Linux 定时任务的坑
0
2021-06-23 12:10:11
idczone

这个坑不知道有人踩过没,一直以为

* */1 * * *

表示每个小时执行一次,结果实际是每分钟执行一次 争取的应该是

0 * * * *

这不是坑

题主重新定义了坑
* * * * * 是每分钟执行一次
0 * * * * 是每小时执行一次
0 0 * * * 是每个月执行一次
没发现哪里有坑

一般都是用在线工具直接生成的, 从来不手写
https://crontab-generator.org/

Cron Job Generated (you may copy & paste it to your crontab):
0 * * * * ls >/dev/null 2>&1
Your cron job will be run at: (5 times displayed)
2018-06-25 09:00:00 UTC
2018-06-25 10:00:00 UTC
2018-06-25 11:00:00 UTC
2018-06-25 12:00:00 UTC
2018-06-25 13:00:00 UTC
...

脑子里的坑(

楼主自己没有理解对。 并不是坑

恩,一直理解错了

还以为是有什么没留意的 bug,结果是楼主自己没弄懂

这真不是坑。

你们都是怎么找到这些偷懒方法的
收藏了

题主想用“/”来表示每*执行一次的操作 ,如果没记错的话应该这样写 0 */1 * * *
即使是每小时执行一次也应该指明在一个小时内的哪一分钟执行

https://crontab.guru/

不是坑。

这个是没看手册导致的吧 ?

这个其实是挺容易用错的,我也用错过,不过说实话,你搞两把就知道这个坑了,也不算是什么大坑

另外*/1 和*没差别,主要是 0 和*的问题,有时候容易忘记把*改成 0

怕是看了 strtus 的定时器写法来写 Linux 的吧

以后写完还是先校验一下再写进 Crontab 吧
https://tool.lu/crontab/

RTFM

自从用了 systemd 的 timer 之后,每分钟执行只需要
OnCalendar=minutely,每小时只需要 OnCalendar=hourly。可以说是方便了不少。

楼主每两个小时执行一次你认为该怎么写

不是坑,你需要一个这个: https://atool.vip/crontab

现在知道了应该是指定具体的在哪一分执行,不然就是每两小时没分钟执行一次。

3Q,收藏了

系统自带的 crontab 坑比较多,还是用 webcrontab
linux:
github.com/lisijie/webcron
windows:
https://jingslunt.com/#/user/blog/details/d53fb58f2c9a00f9f17ca6baf44d592f

http://4.bp.blogspot.com/-2Agqxrro2-Y/UjmeSoethMI/AAAAAAAAIYg/_M3K3XR5JZs/s1600/linux_crontab_colorful.png

哦,你说的都对

我都是手写的,然后用工具验证一遍

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服