Crontab详解

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
实时数仓Hologres,5000CU*H 100GB 3个月
简介: Crontab详解

什么是 crontab?

crontab 是一个定时执行任务的工具,在 Linux 系统中广泛使用。它可以让用户在指定的时间自动执行某个指令或脚本,例如自动备份数据、清除日志、定时运行程序等。

crontab 的工作原理

crontab 依赖于系统 crond 守护进程(又称 cron 服务),该服务默认在后台运行,并周期性地检查用户的 crontab 配置文件是否有要执行的任务。如果有,就按照指定的时间执行对应的任务。

crontab 的语法

crontab 的语法非常特殊,需要按照固定的格式编写。下面是一个完整的 crontab 语句的例子:

# m h dom mon dow command
  *  *  *   *   *  command

上面这条语句共有 6 个字段,分别代表分钟数(m)、小时数(h)、一个月的第几天(dom)、月份(mon)、星期几(dow)和要执行的命令(command)。以下是每个字段的详细说明:

  • Minute:分钟,取值范围为 0-59;
  • Hour:小时,取值范围为 0-23;
  • Day of Month:一个月的第几天,取值范围为 1-31;
  • Month:月份,取值范围为 1-12;
  • Day of Week:星期几,取值范围为 0-7(0 和 7 都代表周日,1 代表周一,依此类推);
  • Command:要执行的命令。

在每个字段中,你可以使用单个数字、数字范围、逗号(,)、星号(*)和斜杠(/),以构建 crontab 语句。

命令

查看当前运行的定时任务

crontab -l

删除所有的定时任务

crontab -r

编辑定时任务

crontab -e

执行命令存储文件位置

/var/spool/cron

日志所在位置

文件:/var/log/cron

使用案例

每隔五秒执行一次

# crontab 最小单位是分钟,利用sleep实现每隔五秒钟执行一次
*/1 * * * * /bin/date >>/tmp/date.txt
*/1 * * * * sleep 5  && /bin/date >>/tmp/date.txt
*/1 * * * * sleep 10 && /bin/date >>/tmp/date.txt
*/1 * * * * sleep 15 && /bin/date >>/tmp/date.txt
*/1 * * * * sleep 20 && /bin/date >>/tmp/date.txt
*/1 * * * * sleep 25 && /bin/date >>/tmp/date.txt
*/1 * * * * sleep 30 && /bin/date >>/tmp/date.txt
*/1 * * * * sleep 35 && /bin/date >>/tmp/date.txt
*/1 * * * * sleep 40 && /bin/date >>/tmp/date.txt
*/1 * * * * sleep 45 && /bin/date >>/tmp/date.txt
*/1 * * * * sleep 50 && /bin/date >>/tmp/date.txt
*/1 * * * * sleep 55 && /bin/date >>/tmp/date.txt

每天00:05执行

5 0 * * *

每月1号14:15

15 14 1 * *

每周从周一到周五 22:00

0 22 * * 1-5

在线验证工具

https://crontab.guru/

点击next可以看到下几次执行时间。

image-20230508112312538

目录
相关文章
|
6月前
|
网络协议 应用服务中间件 开发工具
计划任务at crontab
计划任务at crontab
|
SQL Linux Apache
Crontab 详解
Crontab 详解
|
JavaScript 前端开发
|
MySQL 关系型数据库 Shell
|
Linux 调度