文章目录
- 前言
- 一、安装
- 二、服务
- 1. 启动crond服务
- 2. 关闭crond服务
- 3. 重启crond服务
- 4. 设置crond开机启动
- 5. 禁用crond开机启动
- 6. 查看crond是否开机启动
- 7. 重新载入配置
- 8. 查看crond运行状态
- 三、使用
- 1. 查看当前用户的crontab
- 2. 编辑用户的crontab
- 3. 删除用户的crontab的内容
- 四、语法
- 五、示例
前言
crontab 是 Linux 系统中用于设置周期性被执行的指令的命令。
当安装完成操作系统之后,默认便会启动此任务调度命令。
crond 命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。
注意:新创建的 cron 任务,不会马上执行,至少要过 2 分钟后才可以,当然你可以重启 cron 来马上执行。
Linux 任务调度的工作主要分为以下两类:
1、系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存
2、个人执行的工作:某个用户定期要做的工作,例如每隔 10 分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置
注意:本文使用 CentOS 7 环境演示,不同的系统可能存在差异。
一、安装
如果系统已经安装了crontab,此步骤可忽略,如果你的系统未安装则输入以下命令安装crontab:
yum install crontabs
二、服务
1. 启动crond服务
systemctl start crond
2. 关闭crond服务
systemctl stop crond
3. 重启crond服务
systemctl restart crond
4. 设置crond开机启动
systemctl enable crond
5. 禁用crond开机启动
systemctl disable crond
6. 查看crond是否开机启动
systemctl is-enabled crond
7. 重新载入配置
systemctl reload crond
8. 查看crond运行状态
systemctl status crond
三、使用
1. 查看当前用户的crontab
crontab -l
2. 编辑用户的crontab
crontab -e
3. 删除用户的crontab的内容
crontab -r
更多的操作和详细说明请参考:Linux crontab 命令
四、语法
确保你的cron
作业遵循正确的语法。一个cron
作业的基本格式如下:
* * * * * command_to_execute
- 第1个
*
:分钟(0 - 59) - 第2个
*
:小时(0 - 23) - 第3个
*
:一个月中的日子(1 - 31) - 第4个
*
:月份(1 - 12) - 第5个
*
:一周中的日子(0 - 7),其中0和7都代表星期天
确保你的时间和日期字段正确无误,并且你的命令路径完整(最好使用绝对路径)。
五、示例
每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分…, 每间隔2小时执行 echo “haha”:
开始编辑用户的crontab:
[root@localhost ~]# crontab -e
如果弹出的是vi编辑器,输入 i
进入编辑模式,输入以下内容:
20 0-23/2 * * * echo "haha"
编辑结束时按下 ESC
退出编辑模式,输入 :wq
再回车会保存退出,结果输出如下:
[root@localhost ~]# crontab -e
crontab: installing new crontab
控制台输出 crontab: installing new crontab
,表示任务添加成功,且之后三分钟不会执行对应的任务,所以在调试定时器的时候,要把这三分钟考虑进去,如果执行的时间在三分钟内的话,对应的任务则不会生效。
当时可以同时定时执行更多任务,比如定时执行脚本清除日志,如下:
0 0-23/2 * * * echo "haha"
0 1 * * * /data/shell/cleanup_logs.sh
如图:
系统会在每天凌晨1点执行 /data/shell/cleanup_logs.sh
脚本文件,达到自动清除日志的目的。