• 如何对Nginx日志文件进行切割保存


    日积月累下,日志文件会越来越大,日志文件太大严重影响服务器效率,须要定时对日志文件进行切割。
    切割的方式有按月切割、按天切割、按小时切割,一般都是按天切割。
    那么如何进行切割呢?
    思路:

    1. 创建日志文件存放路径
    2. 将日志文件以当天时间为名字进行重命名
    3. 发送kill -USR1信号给Nginx的主进程号,让Nginx重新生成一个新的日志文件

    思路知道了,能不能具体点,show me code
    下面以每天凌晨00:00切割nginx的访问日志access_log为例,详细讲解切割步骤

    步骤一:创建一个div_nginx_log.sh脚本,输入下面按天切割日志文件的shell脚本

    #!/bin/bash
    // nginx的日志文件路径
    logs_path="/data1/logs/"
    
    // 创建日志文件存放路径
    mkdir -p ${logs_path}$(date -d "yesterday" + "%Y")/$(date -d "yesterday" + "%m")/
    // 将日志文件以当天时间为名字进行重命名
    mv ${logs_path}access.log ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/access_$(date -d "yesterday" +"%Y%m%d").log
    // 发送kill -USR1信号给Nginx的主进程号,让Nginx重新生成一个新的日志文件
    kill -USR1 `cat /var/nginx/nginx.pid`
    
    

    步骤二:设置crontab,每天凌晨00:00切割nginx日志文件

    // 进入编辑crontab
    crontab -e
    
    // 输入配置
    // div_nginx_log.sh脚本的路径要写绝对路径
    00 00 * * * /bin/bash /root/div_nginx_log.sh
    
    

    按上面两个步骤来,这样就大功告成了

    注意:

    若更改crontab配置后不起效果,重新加载cron:/etc/init.d/cron reload
    若还不行就重启crontab服务:/etc/init.d/crond restart

  • 相关阅读:
    CSS input
    CSS 伪类选择器
    input placeholder 文字颜色修改
    css flex弹性布局学习总结
    jqGrid使用方法
    GridView控件RowDataBound事件的一个实例
    GridView控件RowDataBound事件中获取列字段值的几种途径 !!!
    .net中ckeditor的应用
    博客第一天
    用python实现数学多元数学方程式计算
  • 原文地址:https://www.cnblogs.com/phonecom/p/11224387.html
Copyright © 2020-2023  润新知