zoukankan      html  css  js  c++  java
  • nginx 日志分割

    Linux系统

    #nginx日志切割脚本
    
    #!/bin/bash
    
    #设置日志文件存放目录
    logs_path="/usr/local/nginx/logs/"
    
    #设置pid文件
    pid_path="/usr/local/nginx/nginx.pid"
    
    #重命名日志文件
    mv ${logs_path}access.log ${logs_path}access_$(date -d "yesterday" +"%Y%m%d").log
    
    #向nginx主进程发信号重新打开日志
    kill -USR1 `cat ${pid_path}`

     

    windows系统

    nginx的日志都写在一个文件里,这个文件越来越大

    写一个bat脚本,按天来分割日志

    原理:每天凌晨将nginx日志  重命名为 access-日期.txt

    然后调用nginx -s  reopen 命令重新打开日志文件

    log.bat   如下

    @echo off
    
    set name=access-%date%
    move access.log %name%.log
    
    nginx -s  reopen

    我们可以简单的把日志文件mv走,但是你会发现mv走后新的日志文件没有重新生成,

    一般linux下用的文件句柄,文件被打开情况下你mv走文件,但是原来操作这个文件的进程还是有这个文件的inode等信息,

    原进程还是读写原来的文件,因此简单的mv是无法生效的。

    因此建议过程如下

    1. mv原文件到新文件目录中,这个时候 nginx还写这个文件(写入新位置文件中了)

    2. 调用nginx -s  reopen用来打开日志文件,这样nginx会把新日志信息写入重新打开的日志

    (重新打开的日志就是配置文件中设置的位置和名称)

    这样完成了日志的切割工作, 同时切割过程中没有日志的丢失。

    然后将这个bat文件加入windows 计划任务,每天凌晨执行一次。

  • 相关阅读:
    数据结构.队列
    数据结构.栈
    数据结构.线性表(2)——链式表
    新标日初级:12(小李比森年轻)
    数据结构.线性表(1)——顺序表
    新标日初级:11(小野喜欢歌曲)
    新标日初级:10(京都的红叶很有名)
    crawlSpider
    爬虫如何将数据保存到mongodb数据库中
    爬虫如何将数据保存到mysql数据库
  • 原文地址:https://www.cnblogs.com/centos2017/p/9935706.html
Copyright © 2011-2022 走看看