大部分系统管理工做都是经过按期自动执行某个脚原本完成的,那么如何按期执行某个脚本,从而实现运维的自动化,这就要借助Linux的cron功能了.html
计划任务分为一次性计划任务和周期性计划任务.linux
顾名思义,一次性计划任务只执行一次,通常用于知足临时的工做需求,可使用at
命令实现.运维
若是你的Linux没有此命令可使用yum install at -y
来安装.网站
[root@qdlinux ~]# at 23:30 at> systemctl restart httpd at> <EOT> at > 此处同时按下Ctrl + D组合键来结束编写计划任务 //查看已经设置好但还未执行的计划任务 [root@qdlinux ~]# at -l 1 Fri Aug 17 23:30:00 2018 a root //可使用atrm任务序号删除 [root@qdlinux ~]# atrm 1 [root@qdlinux ~]# at -l
若是但愿Linux可以周期性地、有规律地执行某些具体的任务,那么可使用crond
服务再合适不过了.rest
若是你的Linux没有此命令可使用yum install cronie -y
来安装.code
选项 | 解释 |
---|---|
crontab -e | 建立、编辑计划任务 |
crontab -l | 查看当前的计划任务 |
crontab -r | 删除某条计划任务 |
crontab -u | 编辑其余人的计划任务 |
注意:此命令使用编辑的是
/var/spool/cron/username
文件.htm
此命令记忆口诀 =="分、时、日、月、星期 命令"== 请牢记!!!crontab
字段 | 说明 |
---|---|
分 | 取值0-59的整数 |
时 | 取值0-23的任意整数 |
日 | 取值1-31的任意整数 |
月 | 取值1-12的任意整数 |
星期 | 取值为0-7,其中0与7均为星期日 |
命令 | 要执行的命令或程序脚本 |
//每周1、3、五的凌晨3点30分打包/var/www/html目录 [root@qdlinux ~]# crontab -e crontab: installing new crontab [root@qdlinux ~]# crontab -l 0 1 * * 1-5 /usr/bin/rm -rf /tmp/* 30 3 * * 1,3,5 /usr/bin/tar -czvf backup.tar.gz /var/www/html
记忆练习示例自动化
00 02 * * * ls //天天的凌晨2点执行ls 00 02 1 * * ls //每个月1号凌晨2点执行ls 00 02 14 2 * ls //每一年的2月的14号凌晨2点执行ls 00 02 * * 7 ls //每周日凌晨2点执行ls 00 02 * 6 5 ls //每一年6月份周5的凌晨2点执行ls 00 02 14 * 7 ls //每个月周日或14号凌晨2点执行 00 02 14 2 7 ls //每一年2月14号或周日凌晨2点执行 * 02 * * * ls //天天凌晨2点的每分钟执行 * * 14 2 * ls //每一年2月份14号每分钟执行 * * * * * ls //每分钟执行 */5 * * * * ls //每5分钟执行 00 02 * 1,5,8 * ls //每一年1,5,8月的天天凌晨2点执行 00 02 1-8 * * ls //每个月的1-8号凌晨2点执行 //这里须要注意的是分字段必需要求数值,不能为空或者*号 //日和星期字段不能同时使用,不然会发生冲突 //每周一到周五凌晨1点清空/tmp目录内的全部文件 [root@qdlinux ~]# whereis rm rm: /usr/bin/rm /usr/share/man/man1/rm.1.gz [root@qdlinux ~]# crontab -l 0 1 * * 1-5 /usr/bin/rm -rf /tmp/*