crontab命令——系统定时任务
1、crond服务管理与访问控制
启动
[root@localhost ~]# service crond restart
[root@localhost ~]# systemctl start crond.service
自启动
[root@localhost ~]# chkconfig crond on
[root@localhost ~]# systemctl enable crond.service
2、用户的crontab设置
[root@localhost ~]# crontab [选项]
选项:
-e: 编辑crontab定时任务
-l: 查询crontab任务
-r: 删除当前用户所有的crontab任务
[root@localhost ~]# crontab -e
#进入crontab编辑界面。会打开vim编辑你的工作。、
* * * * * 执行的任务
项目 |
含义 |
范围 |
第一个“*” |
一小时当中的第几分钟 |
0-59 |
第二个“*” |
一天当中的第几小时 |
0-23 |
第三个“*” |
一个月当中的第几天 |
1-31 |
第四个“*” |
一年当中的第几月 |
1-12 |
第五个“*” |
一周当中的星期几 |
0-7(0和7都代表星期日) |
特殊符号 |
含义 |
* |
代表任何时间。比如第一个“*”就代表一小时中每分钟都执行一次的意思。 |
, |
代表不连续的时间。比如“0 8,12,16 * * * 命令”,就代表在每天的8点0分,12点0分,16点0分都执行一次命令 |
- |
代表连续的时间范围。比如“0 5 * * 1-6命令”,代表在周一到周六的凌晨5点0分执行命令 |
*/n |
代表每隔多久执行一次。比如“*/10 * * * * 命令”,代表每隔10分钟就执行一遍命令 |
时间 |
含义 |
45 22 * * * 命令 |
在22点45分执行命令 |
0 17 * * 1 命令 |
每周1 的17点0分执行命令 |
0 5 1,15 * * 命令 |
每月1号和15号的凌晨5点0分执行命令 |
40 4 * * 1-5 命令 |
每周一到周五的凌晨4点40分执行命令 |
*/10 4 * * * 命令 |
每天的凌晨4点,每隔10分钟执行一次命令 |
0 0 1,15 * 1 命令 |
每月1号和15号,每周1的0点0分都会执行命令。注意:星期几和几号最好不要同时出现,因为他们定义的都是天。非常容易让管理员混乱。 |
举例
*/5 * * * * /bin/echo ”11” >> /tmp/test
#每隔5分钟向 /tmp/test 文件写入 ”11”
* * * * * echo 11 >> /tmp/test
#每隔1分钟向 /tmp/test 文件写入 11
5 5 * * 2 /sbin/shutdown -r now
#每周二、凌晨5点5分进行重启
0 5 1,10,15 * * /root/sh/autobak.sh
#每个月1,10,15号执行/root/sh/autobak.sh脚本
在定时任务时%号需要加转义符\
date=$(date +\%y\%m\%d)