zoukankan      html  css  js  c++  java
  • nginx日志切割总结

    Nginx日志切割

     

    方法1(脚本+定时执行):

    #step1:加脚本 cut_nginx_log.sh,主进程把USR1信号发给worker,worker接到这个信号后,会重新打开日志文件

    #!/bin/bash

    logs_path="/usr/local/nginx-1.6.0/logs"

    log_name="access.log"

    pid_path="/usr/local/nginx-1.6.0/logs/nginx.pid"

    mv ${logs_path}/${log_name} ${logs_path}/"access-"$(date --date="LAST DAY" "+%Y-%m-%d").log

    kill -USR1 `cat ${pid_path}`

    #find ${logs_path} -name "*.log" -mtime +30 -delete

    #step2:crontab 定时跑脚本,每天0点0分执行脚本

    crontab -e

    0 0 * * * /usr/local/nginx-1.6.0/logs/cut_nginx_log.sh


    方法2(使用logrotate):

    vi /etc/logrotate.d/nginx

    /usr/local/nginx/logs/www.willko.cn.log /usr/local/nginx/logs/nginx_error.log {

    notifempty

    daily

    sharedscripts;

    postrotate

    /bin/kill -USR1 `/bin/cat /usr/local/nginx/nginx.pid`

    endscript

    }

    多个日志以空格分开,

    notifempty 如果日志为空则不做轮询

    daily 每天执行一次

    postrotate 日志轮询后执行的脚本

    这样,每天都会自动轮询,生成nginx.log.1-n


    方法3(conolog):没试过


    方法4(修改配置文件):

    在server{}里加上:

    if ($time_iso8601 ~ "^(d{4})-(d{2})-(d{2})T(d{2}):(d{2}):(d{2})")

    {

    set $ng_year $1;

    set $ng_month $2;

    set $ng_day $3;

    set $ng_hour $4;

    set $ng_minutes $5;

    set $ng_seconds $6;

    }

    access_log  logs/$ng_year-$ng_month-$ng_day-$ng_hour-host.access.log;

    *注意这个要有pcre库,不然if处会报错


    Q&A:

    1、nginx日志实现自动分割了吗?
    实际上没有,但是用apt/yum安装nginx时会自动配置logrotate。

    logrotate作为一个/etc/cron.daily/logrotate任务每日定时执行。

    你往/etc/logrotate.d/下添加配置文件logrotate执行时会自动根据配置文件进行日志归档。

    如apt-get安装的Nginx官方源的日志归档配置文件为 /etc/logrotate.d/nginx。

    参考:

    http://www.iyunv.com/thread-110386-1-1.html

    https://www.oschina.net/question/258792_173849

  • 相关阅读:
    2019/1/17 break语句小练习
    2019/1/17goto语句小试牛刀
    python 中* 和**的作用
    python 元组编码和解码问题
    python SMTP 发送邮件
    python 自定义异常
    python websocket client 使用
    excel、xls文件读写操作
    windows10局域网实现文件共享
    django入门
  • 原文地址:https://www.cnblogs.com/GO-NO-1/p/6500572.html
Copyright © 2011-2022 走看看