Crontab详解

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
实时计算 Flink 版,1000CU*H 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
简介: 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

目录
相关文章
|
3月前
|
安全 数据库 数据安全/隐私保护
Python办公自动化实战:手把手教你打造智能邮件发送工具
本文介绍如何使用Python的smtplib和email库构建智能邮件系统,支持图文混排、多附件及多收件人邮件自动发送。通过实战案例与代码详解,帮助读者快速实现办公场景中的邮件自动化需求。
314 0
|
8月前
|
SQL XML Java
八、(了解即可)MyBatis懒加载(或者叫延迟加载)
八、(了解即可)MyBatis懒加载(或者叫延迟加载)
210 1
|
编译器 C语言 C++
【VS Code】安装配置调试C/C++(一)
【VS Code】安装配置调试C/C++(一)
218 0
|
Web App开发 人工智能 Rust
计算机英文教材太难啃,Higress 和通义千问帮你
英文技术内容翻译难于理解,如何跨语言学习?通义千问结合 Higress 的多模型协议转换能力,可以通过配置插件获得推理模型基于内容理解后的精准翻译,点击本文手把手教你如何配置。
41424 177
|
消息中间件 JSON 大数据
大数据-66 Kafka 高级特性 分区Partition 副本因子Replication Factor replicas动态修改 线上动态修改副本数
大数据-66 Kafka 高级特性 分区Partition 副本因子Replication Factor replicas动态修改 线上动态修改副本数
312 1
|
Ubuntu NoSQL Linux
一文讲明Docker的基本使用,常见Docker命令使用 、Docker的安装使用等【详细说明+图解+概念+实践】
这篇文章详细介绍了Docker的基本使用,包括Docker的安装、常用命令、架构概念等,并通过图解和实践帮助读者快速掌握Docker的使用方法。
一文讲明Docker的基本使用,常见Docker命令使用 、Docker的安装使用等【详细说明+图解+概念+实践】
|
Java 关系型数据库 MySQL
水果商城系统 SpringBoot+Vue
这篇文章介绍了一个使用SpringBoot+Vue开发的前台和管理员端的水果商城系统,包括用户功能如登录、注册、商品浏览、购物车、订单处理等,以及管理员功能如用户管理、商品管理、新闻公告管理等。
水果商城系统 SpringBoot+Vue
|
机器学习/深度学习 传感器 自动驾驶
视觉BEV基本原理和方案解析
视觉BEV在高德高精地图地面要素识别、车道线拓扑构建、车端融合定位等业务场景中都扮演了重要角色。
在Linux中,如何找出占用CPU或内存最多的进程?
在Linux中,如何找出占用CPU或内存最多的进程?

热门文章

最新文章