一、Crond 简介
crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于crontab
文件中,以供之后读取和执行。通常,crontab储存的指令被守护进程激活,crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs。 -- 维基百科
二、Crontab 服务的关闭与启动
# systemctl {start | stop | restart | reload | status} crond.service
命 令 | 说 明 |
---|---|
start | 启动服务 |
stop | 关闭服务 |
restart | 重启服务 |
reload | 重新加载配置文件 |
status | 查看服务启动状态 |
三、Crondtab 命令详解
# crontab [-u user] file
或
# crontab [-u user] [-e | -l | -r]
参 数 | 说 明 |
---|---|
-u <user> | 设定某个用户的crontab服务; |
-e | 编辑某个用户的crontab文件内容,如果不指定用户,则表示编辑当前用户的crontab文件; |
file | 将file作为crontab的任务列表文件并载入crontab,如果命令行中没有指定文件,crontab命令则接受标准输入上键入的命令,并将它们载入crontab; |
-l | 显示某个用户的crontab文件内容,如果不指定用户,则表示编辑当前用户的crontab文件; |
-r | 从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则删除当前用户的crontab文件; |
-i | 在删除用户的crontab文件时确认提示; |
四、Crontab 格式说明
在Crontab文件中,每一行代表一项任务,每行的每个字段代表一项设置,共分为六个字段,前五段代表时间,第六段是要执行的命令段,格式如下:
minute hour day month week command
参 数 | 说 明 |
---|---|
minute | 表示分钟,取值0-59; |
hour | 表示小时,取值0-23; |
day | 表示日期,取值1-31; |
month | 表示月份,取值1-12; |
week | 表示星期,取值0-7,这里0和7代表星期日; |
command | 要执行的命令,可以是系统命令,也可以是自定义脚本; |
在以上字段中,还可以使用以下特殊字符:
参 数 | 说 明 |
---|---|
*(星号) | 代表任意时间 |
,(逗号) | 代表不连续的时间 |
-(短横) | 代表连续的时间范围 |
/(正斜线) | 指定时间的间隔频率,可以和* 号一起使用 |
五、常用方法
例1:
* * * * * command
说明:每分钟,执行一次command命令;
例2:
0 0,23 1,31 * * command
说明:每月的1号和31号的0点整及23点整,执行一次command命令;
例3:
0 1-6 * * * command
说明:每天的1点整到6点整,执行一次command命令;
例4:
*/30 * * * * command
说明:每隔30分钟,执行一次command命令;
六、Crontab 配置文件
文 件(目 录) | 说 明 |
---|---|
/etc/crontab | 系统任务调度配置文件 |
/var/spool/cron/ | 用户任务调度配置文件存放目录,配置文件以用户名命名 |
/etc/cron.allow | 白名单,允许使用crontab命令的用户 |
/etc/cron.deny | 黑名单,不允许使用crontab命令的用户,对root用户无效 |
当/etc/cron.allow
和/etc/cron.deny
文件都同时存在时,以白名单为准,当两个文件都不存在时,只有root用户可以使用Crond
命令;
七、默认编辑设置
设置crontab默认编辑器,编辑$HOME/.profile文件,加入:
EDITOR:vi; export EDITOR
网友评论