zoukankan      html  css  js  c++  java
  • Nginx日志按日切分及清理超期的日志文件

    Nginx的日志配置如下:

    #定义日志打印的格式
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
    # 声明log   log文件路径  log格式
    access_log  logs/access.log  main;

    上面是http作用域下的日志配置,除此之外,nginx还有server和location作用域可以配置日志,日志级别 location > server > http 。

    nginx的日志如果不做切分的话会在一个文件中一直追加,导致日志文件越来越大,所以通过编写脚本来实现控制日切的功能,同时清理存在超过30天的文件。

    脚本如下:

    #!/bin/bash
    #LOGS_PATH为日志存放路径
    LOGS_PATH=/weblog/nginx/logs
    YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)
    KEEPTIME=$(date -d "-30 days" +%Y-%m-%d)
    #切分日志文件
    mv ${LOGS_PATH}/access.log ${LOGS_PATH}/access_${YESTERDAY}.log
    mv ${LOGS_PATH}/error.log ${LOGS_PATH}/error_${YESTERDAY}.log
    #通过Nginx信号量控制重读日志,/web/nginx/为nginx安装目录
    kill -USR1 $(cat /web/nginx/logs/nginx.pid)
    #删除30天前的日志文件
    rm -f ${LOGS_PATH}/access_{KEEPTIME}.log
    rm -f ${LOGS_PATH}/error_{KEEPTIME}.log
    echo 0

    添加系统定时任务

    crontab -e
    #每天0时1分进行日志分割
    01 00 * * * /web/nginx/logs/cut_nginx_log.sh  
     
    #重启Linux定时任务
    crond restart
  • 相关阅读:
    溢出省略号
    自定义字体
    jquery实现上一页下一页
    集成学习理解
    常用命令-python篇
    python 多进程和多线程
    10预处理命令上
    9函数
    8指针2
    7指针1
  • 原文地址:https://www.cnblogs.com/zjfjava/p/11154989.html
Copyright © 2011-2022 走看看