crontab 定时任务 65 分钟执行一次,怎么写?

2019-12-24 16:40:26 +08:00
 shengchao
32642 次点击
所在节点    Linux
88 条回复
caryqy
2019-12-24 17:47:36 +08:00
不对,我的方法错的
dosmlp
2019-12-24 17:48:25 +08:00
@maichael 那还是每小时执行一次啊
JJstyle
2019-12-24 17:49:52 +08:00
1/65 * * * *,难道不是这个吗?
momocraft
2019-12-24 17:51:32 +08:00
寫一個腳本生成 100 次間隔 65 分鐘的 crontab
然後用 cron 遞歸執行
winterbells
2019-12-24 17:51:37 +08:00
每次自动添加一个 65 分钟后的时间的任务?
luban
2019-12-24 17:52:07 +08:00
执行间隔变短,额外的存储控制执行时间
kilen3a
2019-12-24 17:58:18 +08:00
crontab 建一个只执行一次的脚本,然后等脚本执行完之后计算 65 分钟后的时间,并修改成对应时间,done !
eason1874
2019-12-24 18:01:30 +08:00
我实现过类似的需求,写一个 sh 文件,在 crontab 每分钟运行。

然后 sh 文件的代码就是:一个开始时间戳常量,运行的时候,先计算这个时间戳距离当前的分钟数,然后拿这个分钟数去除以 65,如果能被整除说明隔了 65 分钟,那就运行,不能整除就结束,等下一分钟。
dosmlp
2019-12-24 18:02:44 +08:00
直接的没有,楼里看很多人提出了许多间接的方法应该可以
KENNHI
2019-12-24 18:03:51 +08:00
?就没有一个人能想起 systemd 吗
https://wiki.archlinux.org/index.php/Systemd/Timers_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)
我现在连网络都是用 systemd 配置的,systemd 可不只是 init
tolbkni
2019-12-24 18:07:34 +08:00
@maichael 你这也还是每个小时跑一次,只是延后了 5 分钟
mahogany
2019-12-24 18:15:08 +08:00
cron */n 指的是分钟数...能被 n 整除时执行,不是每 n 次执行。
为什么非要是 65 分钟,感觉代码不应该依赖这么奇怪的时间 interval。
DGideas
2019-12-24 18:25:38 +08:00
写个 shell 循环,然后每次循环先睡 65 分钟,如何?
superrichman
2019-12-24 18:28:59 +08:00
crontab 不好做,建议用 python 的 apscheduler 可以随便定义 interval
lululau
2019-12-24 18:30:30 +08:00
30 楼正解,用 systemd/times 替代 cron
kn007
2019-12-24 18:37:35 +08:00
systemd.timer
alexsunxl
2019-12-24 19:04:42 +08:00
@KENNHI
学到了, 本机用这个很不错。
如果是在服务器用 systemd 好像有点藏太深了
zealot0630
2019-12-24 19:52:14 +08:00
9102 年了,用 systemd-timer 了,crond 过时了
hq136234303
2019-12-24 22:46:29 +08:00
保持一个 date,每五分钟执行,然后当 65 分钟就执行代码清除,循环即可。
hq136234303
2019-12-24 22:46:45 +08:00
保持一个 date,每五分钟执行,然后当 65 分钟就执行代码。清除时间,循环即可。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/631917

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX