Crond定时任务
Crond是Linux下用来周期性执行某种任务或者等待处理某些事件的一个守护进程。- 当安装了
OS后默认会自动启动Crond进程,每分钟定期检查是否有需要执行的任务,如果有则自动执行。
(一)Linux下的任务调度
1.系统任务调度:/etc/crontab
/etc目录下的crontab文件是系统任务调度的配置文件,记录了系统周期性所执行的工作,比如写缓存数据到硬盘、日志清理等。如:
# 【Crond任务运行的环境变量】
# 指定使用哪个shell,比如bash
SHELL=/bin/bash
# 指定了系统执行命令的路径
PATH=/sbin:/bin:/usr/sbin:/usr/bin
# Crond任务执行信息将通过电子邮件发送给root用户
MAILTO="root"
# 执行命令或脚本时使用的主目录
HOME=/
# 【此部分是crontab文件,第二节介绍】
51 * * * * root run-parts /etc/cron.hourly
24 7 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
2.用户任务调度
/etc/cron.deny:不允许使用crontab命令的用户/etc/cron.allow:允许使用crontab命令的用户/var/spool/cron/:所有用户crontab文件存放的目录,以用户名命名
(二)crontab
用户所建立的crontab文件中,每一行都代表一个任务,每行的每个字段代表一项设置。
1.文件格式
minute hour day month week command
minute:分钟,0 ~ 59之间的整数hour:小时,0 ~ 23之间的整数day:日期,1 ~ 31之间的整数month:月份,1 ~ 12之间的整数week:星期几,0 ~ 7之间的整数,0/7表示星期日command:要执行的命令,可以是系统命令,也可以是自己写的脚本
特殊字符
在上述字段中,可以使用特殊字符:
*:星号 —— 表示所有可能的值,比如month字段为*表示每个月;,:逗号 —— 用来指定一个范围列表,比如1,2,3,4,5,6,7;-:中杠 —— 用在整数中间表示一个整数范围,比如2-6表示2,3,4,5,6;/:正斜杠 —— 指定时间的间隔频率,比如hour字段为0-23/2表示每隔2小时执行一次;minute字段为*/10表示10分钟执行一次。

2.命令格式
crontab [-u user] fileName
crontab [-u user] [-e|-l|-r]
-u user:设定某个用户的crontab服务fileName:crontab文件名-e:编辑某个用户的crontab文件内容,如果不指定用户,则编辑当前用户的
e for edit
-l:显示某个用户的crontab文件内容,如果不指定用户,则显示当前用户的
l for list
-r:删除某个用户的crontab文件内容,如果不指定用户,则删除当前用户的
r for remove
(三)Crond服务
- 安装(一般不需要)
yum install crontabs
- 启动/关闭/重启/重载服务
/sbin/service crond start #启动
/sbin/service crond stop #关闭
/sbin/service crond restart #重启
/sbin/service crond reload #重载配置
- 查看服务状态
service crond status