您的位置:首页 > 运维架构 > Linux

linux下的日志功能和计划任务-sa2

2013-10-07 22:33 141 查看
日志的作用:

    用于记录系统或程序中发生的各种事件;

    用于阅读日志,有助于诊断解决系统故障;

分类:

    内核以及系统的日志:用系统服务同一进行管理,

    用户日志:记录系统用户的登录以及退出系统的相关信息

    程序日志:由各种应用管理的日志

    一般格式为:时间、主机名、子系统名称、消息字段(所进行的操作)
日志的配置文件:/etc/rsyslog.conf

    主要记录了服务的类型和级别,消息发送位置。

    主要类型:authpriv:主要与认证有关的机制,    

    级别:数字越小,级别越严重。
0:emerg紧急:会导致主机系统不可用的情况

1:alert警告:必须马上采取措施解决的问题

2:crit严重:比较严重的情况

3:err错误:运行出现错误

4:warning提醒:可能会影响系统功能的事件

5:notice注意:不会影响系统但值得注意

6:info信息:一般信息

7:debug调试:程序或系统调试信息等    

    配置文件语法:

        设备类型【链接符】日志级别

        .       记录大于等于后面级别的日志

        .=    只记录等于后面级别的日志

        .!+ 记录不等于后面级别的日志

        例:cron.info:记录cron设备的级别大于info的行为日志

        

用户验证相关日志和命令:

    /var/log/lastlog:   查看最近一次登录系统的相关信息,lastlog命令就是使用这个文件

    /var/log/secure:   涉及到输入帐号的事件都会记录在此文件中。

    /var/log/wtmp:    记录用户开关机,登录注销系统等事件。

    who,w:             查看登录信息,其中w命令可以显示当前系统中每个用户和它运行的进程信息。        

    logger:               从命令行直接向系统日志文件写入一行信息。

    
syslog服务架设:

    1、配置服务器端:

        a、vi /etc/rsyslog.conf,去除13.14.17.18行的#号。开启服务器端的日志接受功能。要关闭服务器端的防火墙和selinux

    2、配置客户端:

        b、vi /etc/rsyslog.conf   跳到最后一行,添加“*.* @@10.0.2.9:514”即将所有设备的日志结果发送到10.0.2.9主机上。

        
日志轮转功能

    为了方便有效的管理日志,防止日志文件过大而使用。

    logrotate:日志轮转命令,

        配合一个配置文件,再加上计划任务,隔一段时间执行一次,实现轮转功能,

    轮转配置文件:

        给日志的轮转做指导作用,指导logrotate如何轮转。主配置文件为:/etc/logrotate.conf 次配置文件为:/etc/logrotate.d/*

            主配置文件,对所有在日志轮转中定义的日志文件都有效,写在此内部的局部配置文件仅对个别日志有效,主要包括:

                weekly      所有的日志每周进行一次轮转

                rotate 4    所有的日志默认保留四个旧文件

                minsize     指定执行轮转的日志文件最小大小,默认单位为Byte,日志达到此数即执行轮转

                create      创建一个新的日志文件,可以指定日志文件的权限以及用户和组

                include /etc/logrotate.d/*  包括了次配置文件所在的目录。

                局部配置文件:/var/log/wtmp,只是一个日志文件名,其后的内容是对这个日志特有的配置,仅对他有效

            次配置文件,为了方便管理,将一些配置放在特定的文件夹下 /etc/logrotate.d/*。可以指定一个配置文件只对特定程序的日志有效。但此中可以调用外部脚本,将外部命令放在 sharedscripts和 endscript之间即可;

                prerotate:在脚本中,logrotate命令执行前执行脚本内容

                postrotate:logrotate命令运行后执行脚本内容。

    命令:

        logrotate -f /etc/logrotate.d/dear 强制执行dear定义的轮转                

    
计划任务:

    创建和管理在指定的时间自动的执行任务。    

    at:

        在指定的时间点自动执行预先设置的一些命令操作。一次性的执行任务。守护程序为/etc/init.d/atd

        用法 at  hh:mm 再输入指令,ctrl+d退出,at -l 查看计划任务。

        at+time+file 在规定时间执行文件内的命令。

        at -c +at编号  可查看计划任务的命令。

    batch:

        格式和命令与at完全相同,但at无论系统的使用率如何都会执行,而batch会根据系统的使用率进行分辨,只在系统闲置时才执行计划任务。                   

    crontab:

        按照预先的设置周期的重复执行用户指定的命令操作。     

    anacron :

        弥补系统突然关机后不能执行cron计划任务的问题,在系统开机后,anacron会自动扫描为执行的计划任务,并将未执行的任务交给cron继续执行。                      

                    

注:

    日志由系统服务rsyslogd统一管理(新版本为rsyslogd,旧版本syslogd),主要程序为/sbin/rsyslogd。配置文件为/etc/rsyslog。conf    

    lsof -i :514    查看514端口的状态。

    uname -a        查看系统内核信息

    at和crontab的计划任务存放在/var/spool内。at的计划任务执行完毕会自动删除

    在次配置文件中没有设置的重要选项,默认使用主配置文件的选项

    修改了程序的配置文件之后都需要刷新服务才能有效。    

    
练习:

    将主机2上与计划任务相关的日志都发到主机1上去;修改主机1配置文件,将计划任务相关的日志记录到日志文件/var/log/newcron.log;设定该日志文件的轮转,每周轮转一次,若该文件大于5M,则自动轮转,

    思路:1、配置服务器端:

        a、vi /etc/rsyslog.conf,去除13.14.17.18行的#号。开启服务器端的日志接受功能。要关闭服务器端的防火墙和selinux。将cron的日志修改为/var/log/dear.txt

        b、在/etc/logrotate.d/下建立一个针对dear日志的轮转配置文件

            /var/log/dear.txt{

            weekly

            create 0644 root root

                minsize 1024

            rotate 4    

            }

         c、刷新rsyslog服务。   

    2、配置客户端:

        a、vi /etc/rsyslog.conf   跳到最后一行,添加“*.* @@10.0.2.9:514”即将所有设备的日志结果发送到10.0.2.9主机上。      

        b、刷新rsyslog服务
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息