命令介绍在服务器安装好系统和相关服务后,对于系统配置、服务配置、数据管理、服务器操作权限管理就变得尤为重要。因为涉及到服务器的各种安全(如:登录、操作)。crontab命令用于打开cron表进行编辑。定时任务:顾名思义,就是定时执行某项操作或某项行为。和Windows系统一样,它也有计划任务服务。在Linux系统中,crond是一种服务,用于周期性地执行Linux系统中的命令、脚本或指定的程序。定时任务一般有以下两个目的:1、系统本身周期性执行的操作或任务(如:日志轮询)。2.用户定期执行的操作或任务(如:定期更新同步数据、重要数据备份等)。Linux下的任务调度分为系统任务调度和用户任务调度两大类系统任务调度:系统需要周期性执行的工作,比如将缓存数据写入硬盘,清理日志等。有一个crontab/etc/目录下的文件,是系统任务调度的配置文件。/etc/crontab文件内容如下[root@centos7~]#cat/etc/crontabSHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=root#具体见man4crontabs#作业定义示例:#.----------------minute(0-59)#|.------------小时(0-23)#||.------------月中的第几天(1-31)#||||.--------月(1-12)或一月、二月、三月、四月。..#||||.----星期几(0-6)(星期日=0或7)或星期日、星期一、星期二、星期三、星期四、星期五、星期六#||||||#*****用户名要执行的命令从机器上的配置文件可以看出,系统定时任务格式/etc/crontab分为6段,中间用空格隔开。前5段是时间格式,第6段是要执行的命令。详细说明:minute#minute,可以是0到59的任意整数hour#hour,可以是0到23天的任意整数#date,可以是1到31的任意整数月#Month,可以是1到23的任意整数12week#Week,可以是0到7的任意整数,其中0或7代表Sundaycommand#执行的命令可以是系统命令也可以是自己写的脚本文件。在上述配置字段中,以下特殊字符*(星号)#也用于表示所有值。例如,如果在第一段中使用*,则表示在满足其他条件的情况下,每分钟将执行以下命令操作。,(逗号)#逗号分隔的值代表一个指定的范围。例如,第四段中使用1、3、5、7表示的是1、3、5、7月份。—(中间条)#表示一个范围。例如,如果您在第二段中使用0-8,则表示从0:00到8:00的范围。/(正斜杠)#表示一个时间的间隔频率。例如,如果您在第一段中使用*/5,则表示每5分钟一次。语法格式crontab[-uuser]filecrontab[-uuser][-l|-r|-e][-i][-s]选项说明-e#编辑用户的定时器-l#列出用户的定时器-r#删除用户的定时器-u<用户名>#指定用户名设置定时器时间任务编写与配置编写任务规范在日常实际生产和测试环境中,编写定时任务是有一定的规范和规则需要遵循的。结合我在实际生产环境中的写作经验,笔者总结如下:1、在写定时任务时,一定要在每一行或每一段中添加注释信息。2、比如是shell脚本执行的任务,在前面加上说明/bin/sh。3、对于执行脚本的定时任务,需要在末尾添加>/dev/null2>&1,将一些不需要的输出信息重定向为null,即不输出不需要的信息。4、使用系统或服务命令,使用绝对路径,然后写入脚本,最后将脚本写入定时任务。5、规范目录的使用(例如定时任务执行的脚本目录设置为/server/cron_scripts)。2)定时任务配置实际生产和测试环境对定时任务的配置也有一定的操作规范,如下:1.对于命令执行形式的定时任务,需要先测试命令的执行情况,并在确认无误后执行将命令写入脚本。2、对于脚本形式的定时任务,首先需要对脚本的整体执行进行调试,然后使用标准的目录路径写入定时任务。3、对于生产环境中的定时任务操作,必须在测试环境中反复测试,确认无误后再应用到实际生产环境中,定时任务执行完毕后再手动查看执行状态。定时任务和各种操作的具体例子,请参考官方文档。读者也可以在自己的实验环境中编写配置,本章不再赘述。以上内容来自米公新书《 Linux 系统运维指南 从入门到企业实战 》应用实例查看当前登录用户下的定时任务[root@centos7~]#crontab-lnocrontabforroot分别在第5、15分钟执行5,15hour****command_name在上午9:00到11:00的第5和15分钟执行5,159-11***command_name在上午9:00到11:00的第5和第15分钟执行5am每3天,159-11*/3**command_name5,159-11**1command_name在每周一的早上9点到11点的第5和15分钟14:45重启httpd45141,11,21**/etc/init.d/httpdrestart每周六日1点10分重启smb101**6,0/etc/init.d/httpd每小时重启一次/etc/scripts/test.sh这个script01****/etc/scripts/test.sh每天学习一个Linux命令(96):ntpdate每天学习一个Linux命令(97):jobs
