作业调度与系统日志
功能: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时,在系统控制台的终端窗口中显示一条提示信息
例如 以root用户设置cron调度,要求每周一的8:00查看/etc/passwd文件
显示crontab文件
例如 使用ls -l 命令访问/var/spool/cron目录
例如:使用crontab -l 命令显示当前用户gqxing自己的crontab文件
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命令
调度一次性执行的作业
格式 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中的作业
(2)直接计时法
直接使用绝对时间,如today(今天)、tomorrow(明天)、midnight(深夜)、noon(中午)
例如 在明天下午三点执行文件job中的作业
例如 设置at调度 要求在2015年12月31日23点59分向登录在系统上的所有用户发送”Happy New Year"信息
例如 下列命令提交的at作业将会在当天的18:30,删除当前用户gqxing主目录中的core文件
例如 下列命令提交的at作业将会在12月25日午夜进入/home/gqxing/backup目录,压缩其中的所有数据文件
显示at作业及作业队列
atq命令列出了已经提交到at队列中的所有作业,以及at作业的执行时间信息
格式:atq
删除at作业
例如在at作业尚未执行之前,无需具有超级用户的特权,任何用户均可使用下列命令,从队列中删除自己的at作业。
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命令
为了验证新加入/etc/at.deny文件中的用户是否能够使用at系列命令。可以使用su命令改变用户身份,然
系统定时关机实例
为了在指定时间关机,以应对用电高峰期间的停电或紧急系统维护,可以使用wall命令提前向注册的用户发送停机通知
然后执行ls -l /var/sqool/at
系统日志
在Red Hat Enterprise Linux系统的启动及运行过程中,系统发生的任何重要事件,都会记入各种日志
文件中。对系统或应用程序进行诊断或排错时,这些信息具有非常重要的参考价值。如果立交每个日
志文件的作用。很开能够从中找打自己需要的信息
利用各种日志文件,Red Hat Enerprise Linux系统提供大量的系统时间,说明的信息以及错误信息。
都位于/var/log目录中采用日志文件格式。此外,许多日志文件都是有系统日志守护进程syslogd根据系统
和应用的配置要求生成的。而部分应用程序则生成并维护自己的日志文件,把需要记录的信息直接写
入/var/log中的某个子目录下的日志文件。
大多数日志均可利用文件显示命令less 查询其中的内容;grep命令 按照关键字检索其中的特定信息,head命令 查询最早出现的信息;tail命令 查询最新的日志信息
如果想实时监控某个日志文件,可以使用 “tail -f ”命令
例如 如果想要实现观察客户系统如何访问本地主机中的Apache服务器。
系统日志文件
概念:指Linux系统的基本功能,如授权机制、守护进程以及系统消息等使用的日志文件。
1.系统内核环形缓冲区
日志文件/var/log/dmesg用于记录系统内核环形缓冲内存区转储的信息。在系统的启动过程中,系统
内核将会把引导过程中的软硬件模块初始化信息写入这个缓冲区中。若想观察系统内核的引导信息。
可以使用dmesg命令,或利用more或less等文件显示命令。
直接查询/var/log/dmesg日志文件
#dmesg | less
dmesg 命令主要用于观察和控制系统内核环形缓冲区,显示其中存储的引导信息,清楚过时的数据,设
置缓冲区记录的信息级别。
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配置文件的定义,确定其支持的模块与系统日志的
记录要求,分派每个日志文件应记录的数据类型与格式。
转载于:https://blog.51cto.com/10999640/1726100