命令简介
在服务器装置好零碎及相干服务之后,对于零碎的配置、服务的配置、数据的治理以及服务器的操作权限治理就变的尤为重要。因为,波及到服务器的各项平安(如:登录、操作)。
crontab 命令用来关上 cron 表进行编辑。
定时工作:顾名思义,就是定期执行某项操作或者某种行为。像Windows零碎同样它也有定时工作服务。
在Linux零碎中,crond是Linux零碎中用来定期执行命令、脚本或指定程序的一种服务。定时工作个别有以下两种用处:
- 1、零碎本身定期执行的操作或工作(如:日志轮询)。
- 2、用户定期执行的操作或工作(如:定时更新同步数据、重要数据备份等)。
Linux下的任务调度分为两类:零碎任务调度和用户任务调度
零碎任务调度:零碎周期性所要执行的工作,比方写缓存数据到硬盘、日志清理等。在/etc/目录下有一个crontab文件,这个就是零碎任务调度的配置文件。
/etc/crontab 文件内容如下
[root@centos7 ~]# cat /etc/crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root # For details see man 4 crontabs # Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed
从上机的配置文件,能够看出零碎定时工作格局/etc/crontab分为6段,以空格分隔。前5段为工夫格局,第6段是所需执行的命令。具体的阐明:
minute #分钟,能够是从0到59之间的任何整数 hour #小时,能够是从0到23之间的任何整数 day #日期,能够是从1到31之间的任何整数 month #月份,能够是从1到12之间的任何整数 week #星期,能够是从0到7之间的任何整数,这里的0或7代表星期日 command #执行的命令,能够是系统命令,也能够是本人编写的脚本文件
在上述的配置字段中,还会应用到上面的特殊字符
*(星号) #示意所有值。比方在第一段中如果应用*,则示意在满足其余条件的同时每分钟都执行前面的命令操作。 ,(逗号) #用逗号分隔的值示意指定的一个范畴。比方在第四段应用1,3,5,7,则示意在第1,3,5,7月的含意。 —(中杠) #示意一个范畴。比方在第二段应用0-8,则示意0点到8点这一区间范畴。 /(正斜线) #示意一个工夫的距离频率。比方在第一段应用*/5,则示意每距离5分钟的含意。
语法格局
crontab [-u user] file crontab [-u user] [-l | -r | -e] [-i] [-s]
选项阐明
-e #编辑该用户的计时器 -l #列出该用户的计时器 -r #删除该用户的计时器 -u<用户名称> #指定要设定计时器的用户名称
定时工作书写与配置
书写定工作标准
在日常理论生产、测试环境中,书写定时工作是须要恪守肯定的标准、规定的。笔者依据本人理论生产环境书写教训,总结如下:
- 1、书写定时工作时必须对每一行或一段加上正文信息。
- 2、如里是以shell脚本执行的工作,在最后面加上解释/bin/sh。
- 3、对于执行脚本的定时工作,需在其结尾加上>/dev/null 2>&1将一些不必要的输入信息重定向到空,也就是不输入不须要的信息。
- 4、应用零碎或服务命令要应用绝对路径,再写到脚本,最初将脚本写进定时工作中。
- 5、标准应用目录(如定时工作执行的脚本目录设置成/server/cron_scripts)。
2)定时工作配置
理论生产、测试环境,对于定时工作的配置也是须要有肯定操作标准的,具体如下:
- 1、对于执行命令的模式的定时工作,须要先测试命令执行状况,确认无误后将执行的命令写进脚本。
- 2、对于脚本模式的定时工作,首先就是须要调试脚本的整体执行状况,而后应用标准目录门路写进定时工作。
- 3、对于生产环境的定时工作操作,必须在测试环境进行重复测试,确认无误后再利用到理论生产环境中,而后在定时工作执行后人工进行查看执行状况。
对于定时工作的具体实例及各类操作,可参考官网文档阐明。读者也可在本人的试验环境进行书写、配置,本章节就不做过多赘述。
以上的内容源自民工哥的新书《 Linux 零碎运维指南 从入门到企业实战 》
利用举例
查看以后登录用户下的定时工作状况
[root@centos7 ~]# crontab -l no crontab for root
每小时的第5和第15分钟执行
5,15 * * * * command_name
在上午9点到11点的第5和第15分钟执行
5,15 9-11 * * * command_name
每隔3天的上午9点到11点的第5和第15分钟执行
5,15 9-11 */3 * * command_name
每个星期一的上午9点到11点的第5和第15分钟执行
5,15 9-11 * * 1 command_name
每月1、11、21日的14:45重启httpd
45 14 1,11,21 * * /etc/init.d/httpd restart
每周六、周日的1:10重启smb
10 1 * * 6,0 /etc/init.d/httpd restart
每小时执行/etc/scripts/test.sh这个脚本
01 * * * * /etc/scripts/test.sh
每天学一个 Linux 命令(96):ntpdate
每天学一个 Linux 命令(97):jobs