[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

【超过500家企业部署】AWS搭建、运维、监控服务

【超过500家企业部署】AWS搭建、运维、监控服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

[仅适用于 WordPress] 云服务器“Web Speed”

[仅适用于 WordPress] 云服务器“Web Speed”

[便宜]网站安全自动诊断“快速扫描仪”

[便宜]网站安全自动诊断“快速扫描仪”

[预约系统开发] EDISONE定制开发服务

[预约系统开发] EDISONE定制开发服务

[注册100个URL 0日元] 网站监控服务“Appmill”

[注册100个URL 0日元] 网站监控服务“Appmill”

【兼容200多个国家】全球eSIM“超越SIM”

【兼容200多个国家】全球eSIM“超越SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

【全球专属服务】Beyond北美及中国MSP

【全球专属服务】Beyond北美及中国MSP

[YouTube]超越官方频道“美由丸频道”

[YouTube]超越官方频道“美由丸频道”

[Linux] 让我迷上 CRON 时间格式和执行间隔的要点

你好。

我叫宫崎,来自系统解决方案部门,最近获得了 AWS 和 GCP 资格。
我的 LPIC(202 年之前的目标)是 000。

这次我想写一下我在设置CRON的时间格式和执行间隔时遇到的点。

CRON 时间格式

首先,可以用CRON指定的时间和日期如下。
参考: CRONTAB 的手册页

场地 可能的值
分钟 0-59
时间 0-23
该月的某一天 1-31
1-12
星期几 0-7

下面基于此给出一个设置示例。

# 在 04:00 0 4 运行 db_backup.sh * * * /home/centos/db_backup.sh
# 每 30 分钟 rsync */30 * * * * /home/centos/rsync.sh
# 每月15日计数 * * 15 * * /home/centos/count.sh
# 每周一删除文件 * * * 1 * /home/centos/delete.sh
# 每分钟运行 * * * * * /home/centos/1hunoki.sh

是这样的。
我确信还有很多其他的事情,但这次我着迷的是每隔 45 分钟执行一次。

每 45 分钟跑步一次

现在,如果我想每 45 分钟运行一次 shell 脚本,我应该如何设置呢?
起初,我尝试设置它,因为我认为它会起作用。

#每45分钟运行一次*/45 * * * * /home/centos/45hunoki.sh

是的,这是不正确的。

检查 cron 日志

[root@test-server ~]# cat /var/log/cron Sep 21 19:45:01 test-server CROND[3890]: (root) CMD (/home/centos/45hunoki.sh) Sep 21 20:00 :01 测试服务器 CROND[3894]: (root) CMD (/home/centos/45hunoki.sh) Sep 21 20:45:01 测试服务器 CROND[3899]: (root) CMD (/home/centos/45hunoki .sh)

运行时间为 00 分和 45 分钟。为什么··

这样做的原因是“*/45”中的“*/”没有考虑到0到24小时之间的所有“分钟”。
这种说法很难理解。
换句话说,你思考的不是 00:59,01:00,01:01。

如果替换*/45,则变为00-59/45。
因此,这意味着指定00和45。

顺便说一下,如果您指定 01-12/3,则您
指定的是 01,04,07,10。

*/9 表示 0,9,18,27,...54,0。
请注意,54 后该值将返回 0。

CRON的MAN有如下描述。

您还可以指定间隔值和范围。 在范围后指定“/”将跳过范围内指定的数字。 例如,如果您在小时字段中指定“0-23/2”,则该命令将每两小时运行一次。

CRONTAB 的手册页

考虑到这一点,如果你想以45分钟的间隔跑步,正确的结论方式如下。

*/45 */3 * * * $45hunoki.sh 30 1-22/3 * * * $45hunoki.sh 15 2-23/3 * * * $45hunoki.sh

如果你每 45 分钟做一次,你就可以形成这种规律性。
・从0:00到00分钟、45分钟每3小时执行一次
・从1:00到22:00每3小时30分钟执行一次
・从2:00到23:00每3小时15分钟执行一次

分钟 00 15 30 45
0 点 00:00 00:45
1点钟 1:30
2点钟 02:15
3点钟 03:00 03:45
4点钟 04:30
5点钟 05:15

如果您查看该表,您可以看到规律性,无论是每 40 分钟还是每 50 分钟。

概括

*/45 我很尴尬,因为我以为这样就可以了。
当我再次观看MAN时,我注意到了很多事情。
我推荐它是因为一旦你尝试把它写在纸上,你就会很容易注意到其中的规律性。

就是这样。

如果您觉得这篇文章有帮助,请点赞!
4
加载中...
4 票,平均:1.00 / 14
54,332
X Facebook 哈特纳书签 口袋
[2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

[2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

写这篇文章的人

关于作者

宫崎健太

我于 2017 年作为应届毕业生加入 Beyond。

我们为主要提供基于网络的服务的公司所使用的服务器和云提供24小时、365天的运营、维护和监控服务。
我属于系统解决方案部门,我的工作是改善 Beyond 的运营,以便我们的客户能够专注于他们的业务。

认证:AWS 认证解决方案架构师、GCP 专业云架构师、Linuc1