Linux 命令 - crontab: 任务调度

时间:2023-01-15 20:05:03

cron 是一个 Linux 下的定时执行工具,可以在无需人工干预的情况下运行作业。守护进程 cron 会读取 crontab 文件,根据配置在指定的时间执行任务。
contab 命令用来添加、删除、显示 cron 任务表。

(Ubuntu 环境)可以通过 service 命令启停 cron 服务:

service cron status		# 查看 cron 服务状态
service cron start		# 启动 cron 服务
service cron stop		# 停止 cron 服务
service cron restart       # 重启 cron 服务
service cron reload		# 重新加载 cron 服务配置

 

crontab 命令

命令格式

crontab [-u user] file
crontab [-u user] [-l | -r | -e] [-i] [-s]

命令参数

-u
  指定用户

-l
  显示当前的 crontab 文件内容。

-r
  删除当前的 crontab 文件内容。

-e
  编辑当前的 crontab 文件内容,如果文件不存在则创建新文件。

-i
  在删除 crontab 文件内容时予以提示。

crontab 文件

格式:minute hour day_of_month month day_of_week command

字段含义

字段 含义
 minute   分钟,取值范围是 (0 - 59)
 hour  小时,取值范围是 (0 - 23)
 day_of_month   日期,取值范围是 (0 - 31)
 month   月份,取值范围是 (1 - 12),也可以用 jan,feb,mar,apr... 表示
 day_of_week   星期,取值范围是 (0 - 6),其中周日用 0 或 7 表示,也可以用 sun,mon,tue,wed,thu,fri,sat 表示 
 command   要执行的命令

特殊符号含义

特殊符号 说明
*  通配所有可能的取值
,  指定取值列表,例如 1,3,5,7,9 
-  指定整数范围,例如 1-5
/  指定间隔频率

cron 表达式例子

示例 说明
 */15 * * * *  每隔 15 分钟执行任务
 0 */2 * * *  每隔 2 个小时,在整点的时候执行任务
 0 3 * * * *  每天凌晨三点的时候执行任务
 0 0 5,15,25 * *  每月 5 号,15 号,25 号凌晨的时候执行任务
 15 12 * * 1  每周一中午 12 点 15 分的时候执行任务
 0,30 12-20 * * *   每天 12:00 至 20:59 之间,在整点或半点的时候执行任务 

实例

a) 添加 cron 任务

huey@huey-K42JE:~/huey/linux/cmdline$ echo "*/3 * * * * date >> ~/huey/linux/cmdline/cron.out" > mycron
huey@huey-K42JE:~/huey/linux/cmdline$ crontab mycron

b) 删除 cron 任务

huey@huey-K42JE:~/huey/linux/cmdline$ crontab -r

c) 显示 cron 任务

huey@huey-K42JE:~/huey/linux/cmdline$ crontab -l
*/3 * * * * date >> ~/huey/linux/cmdline/cron.out