• logrotate日志轮转


    1)基本介绍

    适合应用服务日志,系统日志按天切割
    如果没有日志轮转,日志文件会越来越大
    将丢弃系统中最旧的日志文件,以节省空间
    logrotate本身不是系统守护进程,它是通过计划任务crond每天执行

    # cat /etc/cron.daily/logrotate 
    #!/bin/sh
    /usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf		//日志轮转,按照/etc/logrotate.conf
    注释:/var/lib/logrotate/logrotate.status 是轮转记录
    /usr/sbin/logrotate -f /etc/logrotate.conf		//强制轮转日志,主要用于测试
    	/usr/sbin/logrotate -f /etc/logrotate.d/httpd  	//具体的服务日志轮转
    

    2)配置文件

    logrotate配置文件
    /etc/logrotate.conf			//决定每个日志文件如何轮转
    /etc/logrotate.d/* 
    

    3)配置文件详解

    # egrep -v "^$|^#" /etc/logrotate.conf 
    ==================全局设置==================
    weekly								//轮转周期,一周轮转
    rotate 4							//保留4份
    create								//轮转后创建新文件
    dateext								//使用日志作为后缀
    compress							//是否压缩
    include /etc/logrotate.d 			//包含该目录下的文件
    /var/log/wtmp {						//对该日志文件设置轮转的方法
        monthly							//一个月轮转一次
        create 0664 root utmp			//轮转后创建新文件,并设置权限
    	minsize 1M						//最小达到1M才轮转
        rotate 1						//保留一份
    }
    /var/log/btmp {
        missingok						//丢失不提示
        monthly
        create 0600 root utmp
        rotate 1
    }
    

    4)httpd服务日志轮转

    #vim  /etc/logrotate.d/httpd
    /var/log/httpd/*log {
        missingok
        notifempty				//即使日志文件为空文件也做轮转,这个是logrotate的缺省选项。
        sharedscripts		//运行postrotate脚本,作用是在所有日志都轮转后统一执行一次脚本。如果没有配置这个,那么每个日志轮转后都会执行一次脚本
        delaycompress		//延迟压缩
        postrotate			//在logrotate转储之后需要执行的指令,例如重新启动 (kill -HUP) 某个服务!必须独立成行
            /bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true
        endscript
    }
    #/usr/sbin/logrotate -f /etc/logrotate.conf		//强制轮转日志
    #ll /var/log/httpd/access* 						//发现日志已经被切割了
    

    5)nginx 服务日志轮转

    cat /etc/logrotate.d/nginx
    /usr/local/nginx/logs/*log {
        daily
        rotate 365
        missingok
        notifempty
        compress
        dateext
        sharedscripts
        postrotate
        /usr/local/nginx/sbin/nginx reload
        endscript
    }
    
  • 相关阅读:
    try? try! try do catch try 使用详解
    Swift Write to file 到电脑桌面
    NSLayoutConstraint 使用详解 VFL使用介绍
    automaticallyAdjustsScrollViewInsets 详解
    Swift 给UITableView 写extension 时 报错 does not conform to protocol 'UITableViewDataSource'
    OC Swift中检查代码行数
    Swift中 @objc 使用介绍
    SWift中 '?' must be followed by a call, member lookup, or subscript 错误解决方案
    Swift 中 insetBy(dx: CGFloat, dy: CGFloat) -> CGRect 用法详解
    求1000之内所有“完数”(注:C程序设计(第四版) 谭浩强/著 P141-9)
  • 原文地址:https://www.cnblogs.com/lovelinux199075/p/9038821.html
Copyright © 2020-2023  润新知