Cron

概述

参考:

软件实用程序 Cron 也称为 Cron Job(定时任务),是类 Unix 计算机操作系统中基于时间的 Job 调度 程序。设置和维护软件环境的用户使用 cron 来调度作业 (命令或 shell 脚本),以便在固定的时间、日期或时间间隔定期运行。

cron 的操作由 Cron Table(计划任务表,简称 crontab) 文件驱动,该文件是一个配置文件,用于指定按给定计划定期运行的命令。 crontab 文件存储在保存作业列表和 cron 守护程序的其他指令的位置。用户可以拥有自己的个人 crontab 文件,并且通常有一个系统范围的 crontab 文件(通常在 /etc 或 /etc 的子目录中),只有系统管理员才能编辑。

Syntax(语法)

Cron Table 的格式如下:

# ┌───────────── minute (0 - 59)
# │ ┌───────────── hour (0 - 23)
# │ │ ┌───────────── day of the month (1 - 31)
# │ │ │ ┌───────────── month (1 - 12)
# │ │ │ │ ┌───────────── day of the week (0 - 6) (Sunday to Saturday;
# │ │ │ │ │                                   7 is also Sunday on some systems)
# │ │ │ │ │
# │ │ │ │ │
# * * * * * <COMMAND>

一个 crontab 中可以有多行,每行都代表一个 Job。

crontab 特殊的符号说明:

  • * 代表所有的取值范围内的数字。特别要注意哦!
  • / 代表每的意思,如 */5 表示每 5 个单位
  • - 代表从某个数字到某个数字
  • , 分散的数字

基本示例

命令描述
*****ls每分钟执行 ls 命令
5****ls每小时的第 5 分钟执行 ls 命令
*/15****ls每 15 分钟执行命令(i.e.每个小时的第 0 15 30 45 60 分钟执行 ls 命令)
  • 0 0 * * * COMMAND # 每天 0 点 0 分执行一次 ls 命令
  • 2 8-20/3 * * * COMMAND # 每天 8:02,11:02,14:02,17:02,20:02 这几个时间执行
  • 0/15 0 * * * COMMAND # 每天 0 点到 1 点这一段时间,每隔 15 分钟执行命令
  • 30 5,17 * * * COMMAND # 每天 5:30 和 17:30 执行命令
  • 0 0 1 * * COMMAND # 每月 1 号的 0 点 0 分,执行命令
  • 0 0 /7 * COMMAND # 每隔 7 天
  • 30 5 8 6 * COMMAND # 指定每年的 6 月 8 日 5:30 执行命令
  • 30 6 * * 0 COMMAND # 指定每星期日的 6:30 执行命令

crontab

Linux 中的 crontab 程序可以实现定时任务功能

概述

参考:

关联文件与配置

/etc/crontab # corntab 程序运行时配置文件

/var/mail/${USERNAME} # 任务执行结果存放文件

/var/log/cron # 任务日志

crontab 命令行工具

EXAMPLE

crontab -l # 查看定时任务

crontab -e # 创建定时任务(直接对文本进行增加)

新增定时任务可用两种方法:

  • 在命令行输入: crontab -e 然后添加相应的任务,wq 存盘退出。
  • 直接编辑 /etc/crontab 文件,即 vi /etc/crontab,添加相应的任务。

最后修改 May 13, 2024: tailscale, jq, clearup (4e49da16)