前言
Linux的例行性工作分为两种,一种是但一执行(at
),一种是循环执行(crontab
)
at
要使用单一的计划任务,Linux负责这个调度的是 atd
,我们使用 at
命令来生成所要运行的工作,并将这个任务以文本的方式存放在 /var/spool/at/
内。
用法如上
at 20:58
touch /file1
<Ctrl+D>
还有一种方法,它可以更详细地规定时间,表示当前时间后的几分钟
at now + 1 minutes
touch /file2
<Ctrl+D>
删除命令是通过 at -d
(编号一致)
cron
循环执行的例行性工作是由 crond
这个服务来调度的,同样它也使用了黑白名单机制,当用户新建工作任务后,该项工作会被记录在 /var/spool/cron/
里,并且它执行的每一项任务都会被记录在 /var/log/cron
中。
用法如上
当我们输入 crontab -e
的时候,他会弹出一个 vim,并临时保存在 /tmp/
下一个随机文件,当我们写完后他才会被保存在 /var/spool/cron/
中,它的格式如下:
代表意义 | 分钟 | 小时 | 日期 | 月份 | 周 | 命令 |
---|---|---|---|---|---|---|
数字范围 | 0-59 | 0-23 | 1-31 | 1-12 | 0-7 | 执行的命令 |
特别的,0和7 都代表周日
特殊字符 | 含义 |
---|---|
* | 代表任何时刻 |
, | 代表分隔时段 |
- | 代表一段时间范围 |
/数字 | 指定时间的间隔频率,例如每3分钟进行一次,*/3 |
我们写一个创建文件的计划任务
我们也可以查看 /var/spool/cron/
下的这个任务
过去了两分钟,我们可以看一下根下创建好的这个文件
我们也可以指定系统的例行性计划任务,这时需要编辑 /etc/crontab