介绍
crontab 命令常见于 Unix 和类 Unix 的操作系统之中(Linux 就属于类 Unix 操作系统),用于设置周期性被执行的指令
crontab 命令从输入设备读取指令,并将其存放于 crontab 文件中,以供之后读取和执行。通常,crontab 储存的指令被守护进程激活,crond 为其守护进程,crond 常常在后台运行,每一分钟会检查一次是否有预定的作业需要执行。
通过 crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script 脚本。时间间隔的单位可以是分钟、小时、日、月、周的任意组合。
计划任务书写格式
这里我们看一看 crontab 的格式
# 计划任务命令格式说明
# .---------------- 分钟 (0 - 59)
# | .------------- 小时 (0 - 23)
# | | .---------- 日 (1 - 31)
# | | | .------- 月 (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- 星期几 (0 - 6) (周日=0 or 7) 或者 sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * 【这里写到时间后要执行的命令】
比如
每个 1月1日12点30分 执行命令 command
30 12 1 1 * command
*
代表这个时间单位下所有可用的时间点
每个月的每一天的12点30分执行命令 command
30 12 * * * command
,
可以分隔多项时间
每个月的每一天的12点30分和40分执行命令 command
30,40 12 * * * command
-
可以取一段时间里的所有值
每个月的每一天的12点的30,31,32,33,34,35分钟时执行命令 command
30-35 12 * * * command
/
指定了一个步进值
每个月的每一天的12点开始没2分钟执行一次命令 command,直到13:00点之前
*/2 12 * * * command
常用命令
编辑任务
$ crontab -e # Edit
列出当前任务列表
$ crontab -l # List
清空所有任务
$ crontab -r
有时候我们不是需要一些规则特别复杂的定时任务执行,我们只是简单的想让它每天执行一次、每小时执行一次,我们有更简单的办法。
- /etc/cron.daily,目录下的脚本会每天执行一次,在每天的 6 点 25 分时运行;
- /etc/cron.hourly,目录下的脚本会每个小时执行一次,在每小时的 17 分钟时运行;
- /etc/cron.monthly,目录下的脚本会每月执行一次,在每月 1 号的 6 点 52 分时运行;
- /etc/cron.weekly,目录下的脚本会每周执行一次,在每周第七天的 6 点 47 分时运行;
系统默认执行时间可以根据需求进行修改。