第十一章cron与日志解析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。


syslog的action字段说明处理方法的选择: ◦ filename 表示日志写入文件,前面加入短划线“-”表示写完日志之后 不对文件系统执行sync ◦ @hostname 表示消息转发给主机hostname上的syslogd ◦ @ipaddress 表示消息转发给IP地址为ipaddress的主机 ◦ user1,user2,... 如果该用户登录,就把消息写到屏幕上 ◦ * 消息写给目前已经登录的所有用户 ◦ 每行只能有一个action,要同时执行多个action,只能配置多行

常见方案: ◦ 立刻扔掉所有数据 ◦ 定期重新设置日志文件 ◦ 轮换日志文件,数据保留一段时间 ◦ 将日志文件压缩,并备份到磁带等介质上

日志文件介绍: ◦ 日志文件通常都放在/var/log目录下,有的发行版本放在/var/adm下 ◦ 大多数应用程序都把他们的日志发送到syslog程序 ◦ syslog程序会根据配置文件(通常是/etc/syslog.conf)的要求决定 信息应该存到哪里

syslog的常用设备名: * 除了mark之外的所有设备 auth 与安全与授权相关的信息 cron 守护进程cron local0-7 本地消息的8种类型 mail 邮件程序 mark 定期产生的时间戳 syslog syslog内部消息 user 用户进程


syslog的严重性级别(由低到高): debug 调试信息 info 提示信息 notice 需要留意的信息 waring/warn 警告信息 error/err 错误信息,需要检查错误发生的原因了 crit 临界点,再不处理就伤脑筋了 alert 紧急状态,快不行了 emerg/panic 系统进入混乱状态,洗白了


日志文件内容格式: ◦ 日期与时间 主机名称 服务名称 信息 ◦ 实验: tail /var/log/messages

syslog程序的功能: ◦ 使程序员从繁重、机械的编写日志文件代码的工作中解脱出来 ◦ 使管理员更好的控制日志的记录过程 ◦ 没有syslog时,每个程序都有自己的日志记录策略,系统管理员对保 存什么信息或者信息保存在哪里没有办法控制。syslog实现了日志的 集中管理。 ◦ syslog允许控制信息的“严重性级别”,并路由到各种不同目标:日 志文件、用户终端或者其他机器

调试syslog: ◦ 语法: logger [-t tag] [-p pri] [message ...] ◦ 参数说明: -p 执行消息的发送设备与严重级别,格式为facility.level -t 指定标签 ◦ 举例: logger -t test -p local2.info hello


syslog的严重性级别注意事项: ◦ syslog.conf中指定的级别为记录的最小级别,所有比该级别严重的信 息都将记录 ◦ 严重性级别前面可以加入等号“=”,表示仅与该严重级别相等才记录 ◦ 严重性级别前面可以加入感叹号“!”,表示除此优先级以及以上级别
mail.info 表示与邮件相关的严重级别大于或者等于info的消息 mail.=info 表示与邮件相关的严重级别等于info的消息 mail.info;mail.!err 只选择级别为info notice warn的消息

使用crontab命令来配置: ◦ 语法:crontab [-u user] [-l|-e|-r] ◦ 说明: -u user 配置用户的cron(只有root能用) -l 列出crontab的内容 -e 编辑crontab的内容(打开vi编辑器) -r 删除crontab的内容 ◦ 举例:每隔两分钟把当前日期发送到邮箱 crontab -e ,加入*/2 * * * * echo `date`>/tmp/date.tmp;mail hexy < /tmp/date.tmp;rm -f /tmp/date.tmp 查看目录:ls -al /var/spool/cron 查看配置:crontab -l 删除:crontab -r

与时间相关的字段可以包含: ◦ 星号,表示匹配任意字符 ◦ 整数,表示必须精确匹配 ◦ 用短划线隔开的两个整数,表示范围 ◦ 一些列用逗号隔开的整数和范围,表示匹配任何列出的值 ◦ 例如: 30 10 * * 1-5 表示什么? ◦ 从周一到周五的上午十点半

时间相关字段的注意事项: ◦ 不要把星号放在第一个字段中,除非需要每分钟执行一次命令 ◦ weekday字段与day字段有潜在二义性,最终结果是或运算,而不是与 运算,例如: ◦ 0,30 * 13 * 5 ◦ 表示“星期五每半个小时或者每月13号每半个小时执行一次”,而不 是“每月13号且是星期五的那天每半个小时执行一次” ◦ 某些crontab版本支持step。如1,3,5,7可以简写为1-7/2

cron的权限控制: ◦ 默认情况下,所有用户都能使用cron ◦ 利用/etc/cron.allow和/etc/cron.deny可以控制那些用户可以使用 cron ◦ 如果存在allow文件,那么它将包含可以提交cronttab的所有用户名单, 每行一个用户,任何没有列出的用户都不能使用crontab命令。如果不 存在allow文件,那么将检查deny文件,以确定哪些人不能使用 crontab。如果两个文件都不存在,那么只有root可以使用。 ◦ 实验

压缩/解压 软件维护

cron介绍 crontab的文件格式 crontab命令 日志记录策略 日志文件 syslog程序 日志轮换

Linux中的周期性任务由cron这个后台进程来维护 ◦ cron在系统启动时自动开始运行 ◦ cron自动读取配置文件,并在需要的时候执行命令 ◦ 每个命令都是由sh执行 ◦ cron的配置文件名为crontab,通常位于/etc/crontab或者 /var/spool/cron或者/etc/cron.d中 ◦ cron启动时会读取所有配置文件,并保存到内存中,然后进入睡眠状 态。每隔一分钟,cron会醒来一次,以读取配置文件的更新

/var/spool/cron目录 ◦ 该目录下面保存每个用户的crontab文件 ◦ 每个用户最多有一个crontab文件 ◦ crontab文件通常与用户名一致,cron会根据文件名称来确定运行该脚 本时使用的UID ◦ crontab命令可以维护这些文件

/etc/crontab文件和/etc/cron.d目录 ◦ 管理员的系统维护计划通常都保存在/etc/crontab文件和/etc/cron.d 目录下面的其他文件中 ◦ 这些文件允许以任何身份来执行命令 ◦ cron以一样的方式来解析/etc/crontab文件和/etc/cron.d目录下面 的其他文件

注意: ◦ 系统关机或者系统时间发生变化而遗漏的命令,cron不会补充执行 ◦ anacron可以用于满足时间精度要求高的任务 ◦ RedHat CentOS上cron改名为crond

配置文件支持#开始的注释行 非注释行包括6~7个字段: ◦ minute hour day month weekday [username] cmd ◦ 相互之间以空格隔开,cmd中的空格按照原意对待,不用加引号,runparts部分代表运行目录下面的所有可执行文件 ◦ username字段只出现在/etc/crontab文件和/etc/cron.d目录下的文 件中,用于指定运行该命令时使用的用户 ◦ 范围:minute(0~59) hour(0~23) day(1~31) month(1~12) weeLeabharlann Baiduday(0~6) ◦ MAILTO=root指定发生错误时信息发送目标


常见日志文件信息: ◦ 日志文件名称 ◦ 创建日志文件的程序 ◦ 文件内容 注意: ◦ 日志文件一般只由root所有 ◦ 大多数日志文件的权限应该是600 ◦ 至少要限制对secure auth.log sudo.log的查看

常见日志文件解释: ◦ /var/log/secure:记录登入系统的日志,如ssh telnet ftp等都会记 录 ◦ /var/log/auth.log:记录授权信息,包括passwd su shutdown等程 序都会记录 ◦ /var/log/sudo.log:记录sudo日志 ◦ /var/log/wtmp:记录登入者信息,必须用last指令查看 ◦ /var/log/messages:几乎所有系统重要信息都在此 ◦ /var/log/boot.log:开机或者服务启动的信息 ◦ /var/log/cron:记录cron程序的日志

问题: ◦ 每隔两分钟发送一次当前登录用户数量给用户hexy如何实现? ◦ 0-59/2 * * * * root (echo current date `date`>/tmp/count;echo the current user count is:`who | wc l`>>/tmp/count;write hexy < /tmp/count)


配置/etc/syslog.conf: ◦ 通常情况下,selector之间为或的关系,同一行的多个selector之间共 享同一个action来处理 ◦ 不管同一行中的其他selector是如何定义的,带有none级别的 selector总会排除相应的facility 有效配置举例: ◦ facility.level action ◦ facility1,facility2.level action ◦ facility1.level1;facility2.level2 action ◦ *.level action ◦ *.level;badfacility.none action

配置/etc/syslog.conf: ◦ 空白行和以#开始的行都被忽略 ◦ 基本格式为: selector <tab> action ◦ selector的格式为: facility.level ◦ facility.level指明发送日志消息的程序和消息的严重性级别。 ◦ selector可以包含特殊的关键字*(所有)和none(全无) ◦ selector可以用多个逗号来分开facility ◦ 多个selector可以用分号分隔

命令字段的注意事项: ◦ 命令可以是任何有效的shell命令 ◦ 最后一个字段一直到行尾都是命令的内容 ◦ 不要加引号 ◦ 需要换行就使用百分号,第一个百分号之前的文本作为命令内容,之 后的文本作为标准输入 ◦ 可以使用分号隔开多个命令 ◦ 可以使用括号把命令进行封装

举例: ◦ 30 2 * * 1 (cd /home/hexy/test; make) ◦ 表示每周一凌晨2:30到/home/hexy/test目录中运行make命令 ◦ 55 23 * * 0-3,6 /home/hexy/backup.sh ◦ 除了周四、周五之外,每天晚上11:55运行/home/hexy/backup.sh 脚本

syslog配置实战(配置sudo): ◦ 默认情况下,sudo的相应设备为local2或者authpriv,可以通过查看 配置文件/etc/syslog.conf来确定sudo的日志存放位置 ◦ 另外一种方法:用visudo启用sudo配置机制,加入: Defaults loglinelen=0 Defaults logfile=/var/log/sudo.log


syslog程序的组成: ◦ syslogd 日志守护进程 ◦ openlog等,将消息交给syslogd进程 ◦ logger,用户级命令,用于从shell提交日志 syslog的控制: ◦ 挂起信号(HUP)可以让syslogd关闭它的日志文件,重新读取配置文 件,并再度开始日志记录。 ◦ syslogd把它的进程写入到/var/run/syslogd.pid文件中,所以在配 置文件修改之后,最好发送HUP信号让syslogd重新读取配置文件。如: kill -HUP `/bin/cat /var/run/syslogd.pid`
相关文档
最新文档