• Nginx基础05:Nginx日志分割


    nginx日志分割非常重要,可对nginx日志进行切割和分析处理,比如实现一个定时任务,去处理nginx日志

    推荐:小型网站1-2天分割一次、中型网站1天分割一次、大型网站每小时分割一次

    分割步骤:

    • 写一个shell,把原日志文件移动到日志备份目录下
      • shell脚本命名log.sh,放入到 nginx/sbin目录下
      • shell脚本内容如下
    • 原日志文件重新生成新文件
      • 执行shell脚本需对脚本文件有访问执行权限:chmod 777 log.sh
    • 定时脚本,定时移动日志文件
      • 执行#crontab -e
      • 添加定时执行脚本:*/1 * * * * sh /usr/local/nginx/sbin/log.sh    表示每分钟执行一次脚本
    #!/bin/sh
    
    #基础路径
    BASE_DIR=/usr/local/nginx
    #待分割备份的日志文件
    BASE_FILE_NAME=nginx.com.log
    
    #原日志文件目录
    CURRTENT_PATH=$BASE_DIR/logs
    #备份日志文件目录
    BAK_PATH=$BASE_DIR/datalogs
    
    #待分割备份的日志文件全路径:/usr/local/nginx/logs/nginx.com.log
    CURRTENT_FILE=$CURRTENT_PATH/$BASE_FILE_NAME
    
    #生成备份文件时前缀:202006071030,当前表达式是每分钟备份一次,如果每天备份一次去掉%H%M
    BAK_TIME=`/bin/date -d yesterday +%y%m%d%H%M`
    #备份日志文件全路径:/usr/local/nginx/datalogs/202006071030-nginx.com.log
    BAK_FILE=$BAK_PATH/$BAK_TIME-$BASE_FILE_NAME
    
    #输出备份文件日志名称,可有可无
    echo $BAK_FILE
    
    #备份之前先停止nginx
    $BASE_DIR/sbin/nginx -s stop
    
    #原日志文件移动到指定的备份文件
    mv $CURRTENT_FILE $BAK_FILE
    
    #启动nginx,重新生成带分割的日志文件
    $BASE_DIR/sbin/nginx

    shell脚本知识点:

      "`"是1前面的点,在shell脚本中表示执行两点之间的内容,与$(…执行内容…)效果相同

  • 相关阅读:
    软件架构的数据流总结(一)
    软件架构的控制流总结
    软件架构的控制流总结
    并行编程架构(指令流水、进程、线程、多核,Pipe and Filter)
    并行编程架构(指令流水、进程、线程、多核,Pipe and Filter)
    初窥深度学习
    初窥深度学习
    神经网络总结(初稿)
    神经网络总结(初稿)
    Survey of single-target visual tracking methods based on online learning 翻译
  • 原文地址:https://www.cnblogs.com/chai-blogs/p/13059902.html
Copyright © 2020-2023  润新知