1.介绍
crontab 是cron table的缩写,可以理解为作业列表或者定时任务列表。
/var/spool/cron/ 目录下存放的是每个用户设置的crontab任务,每个任务以创建者的名字命名,包括root。假如你是root用户,crontab -e 编辑的内容就是vim /var/spool/cron/root的内容。
crontab在/etc目录下面有cron.hourly、cron.daily、cron.weekly、cron.monthly、cron.d5个目录和crontab、cron.deny2个文件
cron.hourly 每小时执行一次的任务
cron.daily 每天执行一次的任务
cron.weekly 每周执行一次的任务
cron.monthly 每月执行一次的任务
cron.d 这个目录用来存放任何要执行的crontab文件或脚本
crontab 是负责调度各种管理和维护任务
cron.deny文件用户设置哪些用户禁用Crontab的功能
2.安装
检查是否安装了
rpm -qa | grep crontab
如果没有安装,则进行安装,采用yum安装
yum install vixie-cron yum install crontabs
检查crontab服务状态
systemctl status crond.service
3.启动和设置开机启动等
systemctl restart crond.service #启动服务 systemctl reload crond.service #重新载入配置 systemctl status crond.service #查看crontab服务状态 systemctl enable crond.service #开机自启动
4.相关参数说明
* * * * * command
分 时 日 月 周 命令
minute hour day month week command
第1列表示:分钟1~59 每分钟用*或者 */1表示,每2分钟就是*/2
第2列表示:小时1~23 8,16代表每天8点和16点。9-10,15-16代表每天9点到10点和每天15点到16点
第3列表示:日期 1~31
第4列表示:月份 1~12
第5列表示:星期 0~6(0表示星期天)
第6列要运行的命令
5.特殊符号
星号(*) 表示每的意思,例如分的一列写成*/2则表示每2分钟执行任务。
逗号(,) 表示指定,例如时的一列写成9,12,18则表示每天9点、12点18点执行任务。
中杠(-):表示范围,例如时的一列写成9-12,14-18则表示每天9点到12点和每天14点到18点执行任务。
正斜线(/):指定时间的间隔频率, 例如分的一列写成*/2则表示每2分钟执行任务。
6.示例说明
输入下面命令进行任务编辑
crontab -e
1.每2分钟执行一次任务
*/2 * * * * /bin/sh hassend.sh
2.每1分钟访问一次链接
*/1 * * * * curl www.yusan.cn
3.每天1点执行一次(例如数据库定时备份)
0 1 * * * /bin/sh backup.sh
4.每天6点和18点执行一次
0 6,18 * * * /bin/sh backup.sh
5.每天9点到12点和下午14点到18点(例如正常上班时间执行)
0 9-12,14-18 * * * /bin/sh backup.sh
6.每周一9点执行
0 9 * * 1 /bin/sh backup.sh
7.每周一上午9点到12点的第10分钟和第25分钟执行
10,25 9-12 * * 1 test.sh
8.每隔3天上午9点到12点的第10分钟和第25分钟执行
10,25 9-12 */3 * * test.sh
9.每月的1号、10号、20号的6点30执行
30 6 1,10,20 * * test.sh
10.每2个小时执行一次
0 */2 * * * test.sh