• nginx日志文件切割


    使用脚本对nginx日志文件进行按天切割

    #!/bin/bash
    LOGS_PATH=/usr/local/nginx/logs
    YESTERDAY=$(date -d -1day +%Y%m%d)
    cd ${LOGS_PATH}
    #按天切割日志
    mv ${LOGS_PATH}/access.log ${LOGS_PATH}/access_${YESTERDAY}.log
    #向 Nginx 主进程发送 USR1 信号,重新打开日志文件,否则会继续往mv后的文件写内容,导致切割失败
    kill -USR1 `ps axu | grep nginx| grep master | awk '{print $2}'`
    #压缩
    gzip -9 ${LOGS_PATH}/access_${YESTERDAY}.log
    #删除7天前的日志
    find . -mtime +7 -name "*20[1-9][3-9]*" | xargs rm -f
    exit 0
    

    然后配置crontab进行每天切割使用

    使用logrotate对nginx日志进行切割

    [root@iZ25b31bdp0Z gitlab-8.5.7-0]# cat /etc/logrotate.d/nginx 
    /var/log/nginx/*log {
        create 0644 nginx nginx
        daily         //可以选择weekly,monthly,切割周期
        rotate 10    //一次存储10个文件,超出数量最早生成的文件会被删除
        missingok    //忽略错误
        notifempty   //空文件不存储
        compress    //启动压缩
        sharedscripts
        postrotate
            /bin/kill -USR1 `cat /run/nginx.pid 2>/dev/null` 2>/dev/null || true
        endscript  
    //其它命令执行完成后,再执行postrotate与endscript中间的命令,两者是固定格式
    }
    
  • 相关阅读:
    优化linux,安装node环境
    腾讯云主机的公网无法访问,putty和FileZilla连接不上
    angularjs1.x的directive中的link参数element见解
    springboot自动装配原理
    redis哨兵部署
    HashMap笔记
    多线程与高并发
    java面试必会知识点
    maven仓库
    java任务调度简单示例
  • 原文地址:https://www.cnblogs.com/marility/p/7278503.html
Copyright © 2020-2023  润新知