作业调度与系统日志
功能:crond、atd与anacron三个重要的守护进程,负责调度各种定时运行的后台作业。

crontab文件主要用于提交重复执行的任务,at命令则仅仅用于提交一次性执行的任务。

crontab文件以及工作原理
      功能:通常均存储在/etc/cron.d目录中,此外,用户也可以创建自己的注册用户名命名的crontab文

件,以便调度运行自己的各种处理任务。用户创建的crontab文件均位于/var/spool/cron目录中。

      原理:cron守护进程启动以后,它将首先检查是否用户设置了crontab文件。cron守护进程首选会搜

索/var/spool/cron目录,寻找以/etc/passwd文件中的用户名命名的crontab文件,被找到的这种文件将载入

内存。例如一个用户名为user的用户,它所对应的crontab文件就应该是/var/spool/cron/user。也就是说,

以该用户命名的crontab文件存放在/var/spool/cron目录下面。cron守护进程还将搜索/etc/crontab文件。由于

cron守护进程没有发现相应的crontab文件时就转入“休眠”状态,释放系统资源,cron守护进程每分钟

唤醒一次,当crontab中的时间和日期与系统的当前时间和日期相同时,就执行相应的crontab任务。
crontab任务之行结束后,任何输出都将作为邮件发送给安排crontab任务的所有者,或者是/etc/crontab文

件中MAILTO环境变量中指定的用户。
       1) 利用crontab文件,可以按时、按日、按周或按月调度执行各种日常的系统管理,是系统能够在指

定的时间重复执行等维护任务。
      2 )利用crontab执行其他日常的系统管理与维护任务,定时备份数据库中的重要数据等。

1.调度重复执行的任务
       crond 是Linux系统中的主要作业调度程序,负责调度执行所有的系统服务;怎样的创建、编辑、显

示和删除crontab文件,如何实现定期、定时、自动执行系统的日常管理与例行维护任务,以及怎样控

制对crontab文件的访问

格式 crontab [选项]
     -e  创建并编辑crontab配置文件,编辑结束后,文件被自动安装
     -l   在标准输出设备上显示crontab配置文件的内容
     -r  删除crontab配置文件

2.crontab配置文件

  用户的crontab配置文件保存于/var/spool/cron目录中,其文件名与用户名相同。
  格式:minute hour day-of-month month-of-year day-of-week [username] commands

各项内容的取值范围
minute: 0-59
hour:0-23
day-of-month:01-31
month-of-year:01-12
day-of-week:0-6,0位星期日
username:以指定的用户身份执行commands,
command: 执行的Linux命令,通常要求使用绝对路径

 

特殊字符
“.”可以使用逗号并列多个数值,如‘1,3,5,7,9'
 “-”指定一个数值范围,如“1-9”
 “/" 和一个数字表示增量,如”1-9/2",相当于“1,3,5,7,9"
 "*"通配符表示所有可能的合法数值
 除了数字之外,月和周两个字段还可以使用其英文名字的缩写(前3个字符),如feb表示二月,sun表

示星期日可以在每一行的起始位置采用注释符合”#“增加一个注释或一个空行。

例如 在crontab指令表示,每个星期五的下午4时,在系统控制台的终端窗口中显示一条提示信息

wKioL1ZzyrmRdMieAAAf6IxTh4I355.jpg

wKioL1ZzxLSxogFqAAFxwZ5yFrg611.jpg

例如 以root用户设置cron调度,要求每周一的8:00查看/etc/passwd文件

wKiom1ZzzZbCNI94AAAhh9fkPcQ359.jpg

wKiom1ZzzviRm1hVAAAiSLGaXWc391.jpg 

显示crontab文件

例如 使用ls -l 命令访问/var/spool/cron目录

wKioL1Zzz-mSZFFvAABRYmzrVxI512.jpg

例如:使用crontab -l 命令显示当前用户gqxing自己的crontab文件

wKiom1Zz0GPxjvA7AABIA6PIB_c337.jpg

crontab命令的访问控制

       Linux系统选用了/etc/cron.deny文件,或/etc/cron.allow文件限制用户使用crontab命令。只有这两个文件认可的用户才能使用crontab命令创建、编辑、显示和删除自己的crontab文件。

cron.deny和cron.allow文件可以包含一系列用户名。每个用户名占用一行。
  如果cron.allow文件存在,则只有这个文件中列出的用户才能创建、编辑、显示和删除crontab文件
  如果cron.allow文件不存在,则除了cron.deny文件中列举的用户之外,其他用户均可创建、编辑、显示    和删除crontab文件
  如果cron.allow或cron.deny文件均不存在,任何用户都能够运行crontab命令

例如 不允许guest和visitor两个用户使用crontab命令 

 wKioL1Zz01GyJlrBAAAegcSdIgY918.jpg

wKiom1Zz04XDmBSdAAAtEBzl75M799.jpg

调度一次性执行的作业
格式 at [选项] [时间]
功能:在指定的时间执行命令系列
-f 文件名 从指定的文件中而不是标准输入读取索要执行的命令。
-l 显示等待执行的调度作业。
-d 删除指定的调度作业
-v 显示作业执行的时间
-c 将命令行上列的作业送到标准输出设备。
进程开始执行的时间可以采用以下形式
(1)绝对计时法

HH:MM 即小时:分钟  可以采用24小时计时制。通常指当天的时间,如果当天的时间已经过去,则在第二天同一时间执行。如果采用12/小时计时制,则时间后面加上AM(上午)或PM(下午)

用户也可以指定命令执行的具体日期,指定格式为month day(月 日)或者mm/dd/yy(月/日/年)或者dd.mm.yy(日.月.年)。指定的日期必须在指定时间的后面。

例如在2008年5月1日13点执行文件job中的作业

wKioL1Zz2-LyrH9LAAAyokksGt8504.jpg

(2)直接计时法

直接使用绝对时间,如today(今天)、tomorrow(明天)、midnight(深夜)、noon(中午)

例如 在明天下午三点执行文件job中的作业

wKiom1Zz3D2DYfUxAAArvNg2UL0323.jpg

例如 设置at调度 要求在2015年12月31日23点59分向登录在系统上的所有用户发送”Happy New Year"信息

wKiom1Zz7RbD_basAABiNLydMkM075.jpg

例如 下列命令提交的at作业将会在当天的18:30,删除当前用户gqxing主目录中的core文件

wKioL1Zz7fWiQ32gAABE0QtqdLk109.jpg

例如 下列命令提交的at作业将会在12月25日午夜进入/home/gqxing/backup目录,压缩其中的所有数据文件

wKioL1Zz7rCz0_gyAABfGLlZmIk532.jpg

显示at作业及作业队列

atq命令列出了已经提交到at队列中的所有作业,以及at作业的执行时间信息

格式:atq

wKiom1Zz7wOxb62uAABcmm4BMHQ301.jpg

删除at作业
 例如在at作业尚未执行之前,无需具有超级用户的特权,任何用户均可使用下列命令,从队列中删除自己的at作业

格式:atrm  id号
 wKioL1Zz8Avyl5e6AABbHh8CyxE495.jpg

at命令的访问控制
     在Linux系统通过/etc/at.deny文件或选用的/etc/at.allow文件限制用户使用at系列命令。只有这两个文件

认可的用户才能够使用at系列命令提交自己的at作业。如果需要,超级用户可以设置at.deny或at.allow文

件,显示或允许指定的用户使用at系列命令
注意:只用超级用户才能访问at.deny和at.allow文件
     /etc/at.deny文件由一系列用户名组成,每个用户占用一行,at.deny文件中列出的用户不能使用at系列

命令提交at作业。

下面是修改之后的at.deny文件。其中新增的guest用户不能使用at命令

wKioL1Zz8qGCbUYCAAAmrbEgMzo712.jpg

为了验证新加入/etc/at.deny文件中的用户是否能够使用at系列命令。可以使用su命令改变用户身份,然

后运行atq命令
wKiom1Zz88nzBkkBAAB4fG5N4B4440.jpg

系统定时关机实例

       为了在指定时间关机,以应对用电高峰期间的停电或紧急系统维护,可以使用wall命令提前向注册的用户发送停机通知

wKioL1Z0EYCBC99UAAEj2UUDyUA032.jpg

然后执行ls -l /var/sqool/at

wKioL1Z0EdLiTxLMAADTKSoI_Yw364.jpg

系统日志

       在Red Hat Enterprise Linux系统的启动及运行过程中,系统发生的任何重要事件,都会记入各种日志

文件中。对系统或应用程序进行诊断或排错时,这些信息具有非常重要的参考价值。如果立交每个日

志文件的作用。很开能够从中找打自己需要的信息
      利用各种日志文件,Red Hat Enerprise Linux系统提供大量的系统时间,说明的信息以及错误信息。

都位于/var/log目录中采用日志文件格式。此外,许多日志文件都是有系统日志守护进程syslogd根据系统

和应用的配置要求生成的。而部分应用程序则生成并维护自己的日志文件,把需要记录的信息直接写

入/var/log中的某个子目录下的日志文件。

         大多数日志均可利用文件显示命令less 查询其中的内容;grep命令 按照关键字检索其中的特定信息,head命令 查询最早出现的信息;tail命令 查询最新的日志信息

如果想实时监控某个日志文件,可以使用 “tail -f ”命令
例如 如果想要实现观察客户系统如何访问本地主机中的Apache服务器。
wKiom1Z0qHCCHvAfAAKSHY2gqn4857.jpg

系统日志文件

         概念:指Linux系统的基本功能,如授权机制、守护进程以及系统消息等使用的日志文件。

1.系统内核环形缓冲区
        日志文件/var/log/dmesg用于记录系统内核环形缓冲内存区转储的信息。在系统的启动过程中,系统

内核将会把引导过程中的软硬件模块初始化信息写入这个缓冲区中。若想观察系统内核的引导信息。

可以使用dmesg命令,或利用more或less等文件显示命令。

直接查询/var/log/dmesg日志文件
#dmesg | less
dmesg 命令主要用于观察和控制系统内核环形缓冲区,显示其中存储的引导信息,清楚过时的数据,设

置缓冲区记录的信息级别。

wKioL1Z0E1iThTT-AALFKnII2V0512.jpg

2.系统消息日志

         系统消息日志文件/var/log/messages是系统信息的集中存储位置,除了专门的日志文件之外,其中

记录了大部分系统进程、实用程序甚至应用程序输出的日志信息。

3.安全审计日志

         安全审计日志文件/var/log/audit/audit.log用户记录系统安全审计信息,尤其是SELinux的安全审计信

息。如果发现某个程序运行不正常,按照常规有关的设置也没有问题,但是总是无法得到预期的运行

结果,可以查询这个日志文件。

4.应用程序日志文件

        处理各种系统日志文件外,还存在部分应用程序专用的日志文件。例如/var/log/httpd目录含有

APache服务器的日志文件,/var/log/samba目录含有samba服务器的日志文件。

       1.Apache服务器日志

         在Linux系统中安装Apache服务器是,通常会在/var/log/目录中创建了一个httpd子目录 (/var/log/httpd)/var/log/httpd/access.log 其中包含Apache服务器的客户系统访问记录;/var/log/httpd/error.log 

其中包含Apache服务器报告的所有出错记录。

       2.CUPS打印系统日志

         通用UNIX打印系统,采用/var/log/cups/error_log作为默认的日志文件、存储各种错误信息;如果打

印方面出现问题,可以查询这个日志文件,/var/log/cups/access_log为访问日志文件,其中记录了打印机

的设置情况。提交的打印作业,以及打印作业的状态等信息。

       3.Samba服务器日志

        Samba服务器是Linux与Windows系统之间常用的一种文件与打印资源共享技术。
        log.smbd 其中包含了Samba服务器启动以及SMB/CIFS文件与打印共享方面的信息。
        log.nmbd 其中包含基于IP协议的NETBIOS网络通信方面的信息。
        log_sysname 用于记录特定客户系统的服务器请求信息,文件名中sysname是客户系统的主机名。

       4.其他日志

       /var/log/xferlog 日志文件用于记录FTP服务器的文件传输日志信息 /var/log/mysqld.log日志文件用于记

录mysql数据库服务器的日志信息。/var/log/yum.log日志文件用于记录利用yum安装、删除或更新软件的日

志信息。

二进制日志文件
      /var/log/目录中的部分日志文件是二进制数据文件,不能直接查阅,只能使用特定的程序读取其中的

信息。
      1.最后一次注册日志

最后一次用户注册的额时间记录位于/var/log/lastlog日志文件中。

      2.用户注册日志
       /var/run/utmp和/var/log/wtmp日志文件包含系统中每个用户的注册记录。在调度各种进程时,系统将

会系统日志守护进程系统日志守护进程 syslogd是一个重要的守护进程,在系统的启动过程中自动启

动,以后台方式运行。syslogd守护进程是一个总控开关,用于接收来自各种系统或应用程序的信息,

记录系统范围的日志信息,如果子系统或应用程序拥有自己专用的日志文件,则把信息送交子系统或

应用程序特定的日志文件。

     3.配置reyslogd
      reyslogd采用模块化的设计,根据/etc/reyslog.conf配置文件的定义,确定其支持的模块与系统日志的

记录要求,分派每个日志文件应记录的数据类型与格式。

      wKiom1Z0pAyxMaH-AAGSTuzFbE4295.jpg