• logrotate 日志管理


    查看logrotate 是否已安装

    因为linux安装软件的方式比较多,所以没有一个通用的办法能查到某些软件是否安装了。总结起来就是这样几类:

    1、rpm包安装的,可以用rpm -qa看到,如果要查找某软件包是否安装,用 rpm -qa | grep “软件或者包的名字”。  

    rpm -qa | grep ruby


    2、以deb包安装的,可以用dpkg -l能看到。如果是查找指定软件包,用 dpkg -l | grep “软件或者包的名字”;

    dpkg -l | grep ruby


    3、yum方法安装的,可以用yum list installed查找,如果是查找指定包,命令后加 | grep “软件名或者包名”;

    yum list installed | grep ruby


    4、如果是以源码包自己编译安装的,例如.tar.gz或者tar.bz2形式的,这个只能看可执行文件是否存在了,

    上面两种方法都看不到这种源码形式安装的包。如果是以root用户安装的,可执行程序通常都在/sbin:/usr/bin目录下。

    说明:其中rpm yum 是Redhat系linux的软件包管理命令,dpkg是debian系列的软件包管理命令。

    安装 logrotate

     在Debian或Ubuntu上:

     apt-get install logrotate cron 

        在Fedora,CentOS或RHEL上:

    yum install logrotate crontabs

    查看logrotate 安装位置 

    whereis logrotate;

    logrotate的配置文件是/etc/logrotate.conf,通常不需要对它进行修改。日志文件的轮循设置在独立的配置文件中,它(们)放在/etc/logrotate.d/目录下 

     logrotate 命令

     语法: logrotate (选项) (参数)

     选项:

         -?或--help:在线帮助;
         -d或--debug:详细显示指令执行过程,便于排错或了解程序执行的情况;
         -f或--force :强行启动记录文件维护操作,纵使logrotate指令认为没有需要亦然;
         -s<状态文件>或--state=<状态文件>:使用指定的状态文件;
         -v或--version:显示指令执行过程;
         -usage:显示指令基本用法。

     参数:要执行的配置文件名称

    示例:

    日志文件存放位置 /var/log/ 文件夹下(包括分割的日志文件),配置文件在/etc/logrotate.d/ 文件夹下

    创建文件:

    touch /var/log/log-file
    echo 1111 >>  /var/log/log-file

    为该文件创建一个配置文件:

    vim /etc/logrotate.d/log-file #打开文件 自定义配置文件名称
    # 写入配置  /var/log/log-file 要分割的日志文件名称  与配置文件名称无关
    /var/log/log-file {
        monthly
    size=50M rotate
    5 dateext
       compress delaycompress missingok notifempty create
    644 root root postrotate /usr/bin/killall -HUP rsyslogd endscript }

    配置解析:

    • monthly: 日志文件将按月轮循。其它可用值为‘daily’,‘weekly’或者‘yearly’。
    • size: 指定文件当天达到50M的时候才转储
    • rotate 5: 一次将存储5个归档日志。对于第六个归档,时间最久的归档将被删除。
    • dateext: 让旧日志文件以创建日期命名
    • compress: 在轮循任务完成后,已轮循的归档将使用gzip进行压缩。
    • delaycompress: 总是与compress选项一起用,delaycompress选项指示logrotate不要将最近的归档压缩,压缩将在下一次轮循周期进行。这在你或任何软件仍然需要读取最新归档时很有用。
    • missingok: 在日志轮循期间,任何错误将被忽略,例如“文件无法找到”之类的错误。
    • notifempty: 如果日志文件为空,轮循不会进行。
    • create 644 root root: 以指定的权限创建全新的日志文件,同时logrotate也会重命名原始日志文件。
    • postrotate/endscript: 在所有其它指令完成后,postrotate和endscript里面指定的命令将被执行。在这种情况下,rsyslogd 进程将立即再次读取其配置并继续运行。

    运行 logrotate

    要调用为/etc/lograte.d/下配置的所有日志调用logrotate:

    logrotate /etc/logrotate.conf 

      要为某个特定的配置调用logrotate:

    logrotate /etc/logrotate.d/log-file #log-file 日志分割的配置文件名称

      排障过程中的最佳选择是使用‘-d’选项以预演方式运行logrotate。要进行验证,不用实际轮循任何日志文件,可以模拟演练日志轮循并显示其输出。

    [root@thh69amnzzZ log]# logrotate -d /etc/logrotate.d/log-file
    
    reading config file /etc/logrotate.d/log-file reading config info for /var/log/log-file Handling 1 logs rotating pattern: /var/log/log-file monthly (5 rotations) empty log files are not rotated, old logs are removed considering log /var/log/log-file log does not need rotating not running postrotate script, since no logs were rotated

       正如我们从上面的输出结果可以看到的,logrotate判断该轮循是不必要的。如果文件的时间小于一天,这就会发生了。

         即使轮循条件没有满足,我们也可以通过使用‘-f’选项来强制logrotate轮循日志文件,‘-v’参数提供了详细的输出。

    logrotate -vf /etc/logrotate.d/log-file

      如果处于排障目的,我们想要logrotate记录到任何指定的文件,我们可以指定像下面这样从命令行指定。

    logrotate -vf –s /var/log/logrotate-status /etc/logrotate.d/log-file #logrotate-status 记录着 log-file 文件的记录

      [root@thh69amnzzZ log]# cat logrotate-status
       logrotate state -- version 2
       "/var/log/log-file" 2018-3-17

    最后根据需求写一个脚本添加  crontab , 定时时间执行即可

    编写sh 脚本

    #/etc/cron.daily/logrotate
    #! /bin/sh
    /usr/sbin/logrotate /etc/logrotate.conf  #/etc/logrotate.d/log-file 根据自己的需求

    在 /var/spool/cron 目录中打开 root 文件,[ 配置说明文件cat /etc/crontab ]添加:

    cron 格式
       */1        *              *            *            *      绝对路径脚本文件路径文件名称
    #分钟(0~59)  小时(0~23)   几号(1~31)   几月(1~12)  星期几(0~7)      命令
    #每行代表都代表一个任务

    文件引用:

        Linux日志文件总管——logrotate

           Liunx 自动执行任务

        Linux定时任务Crontab详解    

        使用 logrotate 进行 nginx 日志分割

  • 相关阅读:
    解决线程安全问题——同步方法
    Console Add Item –Java使用eBay API SDK刊登商品 详解
    解决Eclipse中新建jsp文件ISO8859-1 编码问题
    struts.xml配置详解
    public class Ex2
    ax2+bx+c=0的根的算法
    猜随机数
    中国的个税计算方法
    Javascript String类的属性及方法
    CSS各个浏览器Hack的写法
  • 原文地址:https://www.cnblogs.com/xuey/p/8590696.html
Copyright © 2020-2023  润新知