一、crond简介:
crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
二、crontab时间格式:
f1 f2 f3 f4 f5 command
- 其中f1是表示分钟,f2是表示小时,f3是表示一个月份中的第几日,f4表示月份,f5表示一个星期中的第几天。
- 当f1表示时表示每分钟都要执行program,f2为时表示每小时都要执行程序,以此类推。
- 当f1表示a-b时表示从第a分钟到第b分钟这段时间内要执行,f2为a-b时表示从第a到第b小时都要执行,以此类推。
- 当f1为*/n时表示每n分钟个时间间隔执行一次,f2为*/n表示每n小时个时间间隔执行一次,以此类推。
- 当f1为a,b,c,…时表示第a,b,c,…分钟要执行,f2为a,b,c,…时表示第a,b,c,…个小时要执行,以此类推。
- command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。
代表意义 | 分钟 | 小时 | 日期(天) | 月份 | 周 | 命令 |
---|---|---|---|---|---|---|
数字范围 | 0-59 | 0-23 | 1-31 | 1-12 | 0-7 | 命令 |
特殊字符 | 代表意义 |
---|---|
* | 代表任何时刻都可以 |
. | 代表分隔时段 |
- | 代表一段时间范围 |
/n | n代表数字,即是每隔n单位间隔 |
举例说明:
43 21 * * * 21:43 执行
15 05 * * * 05:15 执行
0 17 * * * 17:00 执行
0 17 * * 1 每周一的 17:00 执行
0,10 17 * * 0,2,3 每周日,周二,周三的 17:00和 17:10 执行
0-10 17 1 * * 毎月1日从 17:00到17:10 毎隔1分钟 执行
0 0 1,15 * 1 毎月1日和15日和周一的 0:00 执行
42 4 1 * * 毎月1日的 4:42分 执行
0 21 * * 1-6 周一到周六 21:00 执行
0,10,20,30,40,50 * * * * 每隔10分 执行
*/10 * * * * 每隔10分 执行
* 1 * * * 从1:0到1:59 每隔1分钟 执行
0 1 * * * 1:00 执行
0 */1 * * * 毎时0分 每隔1小时 执行
0 * * * * 毎时0分 每隔1小时 执行
2 8-20/3 * * * 8:02,11:02,14:02,17:02,20:02 执行
30 5 1,15 * * 1日和15日的 5:30 执行
# 注意:周与日月不可同时并存
#例如:
30,40,50 3 * * * /bin/sh /home/syncdate_stub.sh #每天3:30和3:40和3:50都执行/bin/sh /home/syncdate_stub.sh这个命令
三、crontab命令格式:
# 安装crontab:
yum install crontabs
crontab [-u username] [-l|-e|-r]
crontab -l #查看crontab内容
crontab -e #编辑crontab内容
crontab -r #移出crontab所有内容
crontab -u #只有 root 才能进行这个任务
服务操作说明:
/sbin/service crond start # 启动服务
/sbin/service crond stop # 关闭服务
/sbin/service crond restart # 重启服务
/sbin/service crond reload # 重新载入配置
service crond start # 手动启动crontab服务
service crond restart # 手动重启crontab服务 一般修改完crontab内容后建议重启服务
service crond status # 查看crontab状态
ntsysv # 查看crontab服务是否已设置为开机启动
chkconfig –level 35 crond on # 加入开机自动启动
四、一般操作
crontab -l #查看crontab内容
crontab -e #编辑crontab内容,:wq保存退出
crontab -l #查看crontab内容
service crond restart # 手动重启crontab服务
service crond status # 查看crontab状态