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

    nginx-日志切割

    脚本

    ]# vim /scripts/nginx_log_split.sh
    #!/usr/bin/env bash
    # Author: wanwz
    # Date: 2020-08-03
    # Comment: Automatically split the log every day
    set -euo pipefail
    
    LOG_PATH=/opt/program/nginx/logs
    YSDAY=$(date -d "yesterday" +%Y-%m-%d)
    
    mv ${LOG_PATH}/access.log ${LOG_PATH}/access_${YSDAY}.log
    kill -USR1 $(cat ${LOG_PATH}/nginx.pid)
    ]# chmod 755 /scripts/nginx_log_split.sh
    ]# crontab -e
    0 0 * * * /bin/bash /scripts/nginx_log_split.sh
    

    扩展

    文件描述符

    • 文件描述符是Linux内核为每个打开的文件命名的一个整数标识,内核通过文件描述符来访问文件
    • 每一个文件描述符会与一个打开的文件对应
    • 不同的文件描述符也可以指向同一个文件

    Nginx是一个运行的进程,早已经记录了access.log日志文件,即使路径发生了变化,依然可以定位到,所有如果只是把access.log名字更改了,Nginx还是会向那个文件写内容

    信号

    • 在Linux系统中是通过信号与正在运行的进程进行通信的
    • 有预定好的信号如:SIGHUP,也有自定义信号如USR1

    Nginx自定义信号USR1,当进程收到该信号后,重新打开日志文件,因此kill -USR1 nginx.pid会生成一个新的日志文件

    参考文档

    1. 百度百科
  • 相关阅读:
    node.js的安装
    简单创建数据库和表
    layui后台框架的搭建
    FlagsAttribute属性在enum中的应用 [转]
    递归页面
    AspNet2.0页面生命周期 [转]
    C#基础概念二十五问[转]
    md5加密方法
    ASP.NET中Cookie编程的基础知识 [转]
    说说“数据库的自动安装、升级” [转]
  • 原文地址:https://www.cnblogs.com/wanwz/p/13426804.html
Copyright © 2011-2022 走看看