首页 > 系统相关 >nginx日志切割脚本

nginx日志切割脚本

时间:2023-12-18 16:22:45浏览次数:41  
标签:切割 nginx file path 日志 local log

#!/bin/bash
# utf-8
# description: nginx滚动切割脚本,按照500M进行滚动切割
# ---------------------------------------------------------------------
log_directory="/export/servers/nginx/logs"     # 日志文件目录
max_size=500                                   # 日志文件的最大大小,单位为MB
log_array=("access.log" "error.log")           # 要操作的日志集合
pid_file="/export/servers/nginx/run/nginx.pid" # nginx的PID
# ---------------------------------------------------------------------
count=0

# 日志滚动归档
logrotate() {
  local log_file="$1"
  local log_path="${log_directory}/${log_file}"

  if [[ ! -f "$log_path" ]]; then
    return
  fi

  local current_size=$(stat -c %s "$log_path")

  # 判断当前日志文件大小是否超过最大大小
  if ((current_size > max_size * 1024 * 1024)); then
    local log_file_prefix="${log_file%.*}"
    # 创建一个新的日志文件名,格式为access_YYYYMMDD_HHMMSS.log
    local new_log_file="${log_file_prefix}.$(date +%Y%m%d_%H%M%S).log"
    # 重命名当前日志文件
    mv -f "$log_path" "${log_directory}/${new_log_file}"
    # 重新启动nginx,使其生成新的日志文件
    ((count++))
  fi
}

# 重新生成日志文件写入
generate_log_file() {
  if ((count > 0)); then
    /bin/kill -USR1 "$(cat "$pid_file")" 2>/dev/null
  fi
}

# 删除历史日志
delete_history_log() {
  find "$log_directory" -mtime +5 -type f -exec rm -f {} \;
}

# 主函数
main() {
  for log in "${log_array[@]}"; do
    logrotate "$log"
  done
  generate_log_file
  delete_history_log
}

main

标签:切割,nginx,file,path,日志,local,log
From: https://www.cnblogs.com/PythonOrg/p/17911511.html

相关文章

  • Nginx中URL重写功能以及内置变量
    1、Nginx内置变量常见的内置变量有如下几种:$args,此变量与请求行中的参数相等$query_string,此变量与$args含义一致。$document_root,此变量等同于当前请求的root指令指定的值$uri,表示不带请求参数的当前URL,$uri不包含主机名。如http://www.magedu.net/main/index.do?id......
  • 给已安装的nginx动态添加模块
    以添加echo-nginx-module模块为例查看现有nginx的编译参数$nginx-Vnginxversion:nginx/1.20.2builtbygcc4.8.520150623(RedHat4.8.5-44)(GCC)builtwithOpenSSL1.0.2k-fips26Jan2017TLSSNIsupportenabledconfigurearguments:--user=nginx--group=......
  • nginx监控
    1.监控nginx链接数状态status#1.开启status页面功能cat>/etc/nginx/conf.d/status.conf<<'EOF'server{listen80;server_namelocalhost;location/nginx_status{stub_statuson;access_logoff;}}EOF#2.访问测试[......
  • Nginx中alias和root的区别
    location/i{#www.a.com/i/123.gif alias/var/www/html/images/;#/var/www/html/images/123.gif}在这个location段配置中,如果url请求/i/logo.gif,那么Nginx将会在服务器上查找/var/www/html/images/logo.gif文件,也就是说请求的url中location后面的部分会被追加到ali......
  • Nginx的配置与启动
    配置文件$catconf/nginx.conf#设置用户usernginx;#工作线程worker_processesauto;#error_loglogs/error.log;#设置日志级别error_loglogs/error.lognotice;#error_loglogs/error.loginfo;#编译时文件安装的目录pid/var/run/nginx.pid;#打......
  • mamp nginx thinkphp5 配置方法
    thinkphp5的nginx配置,官方文档参考: http://static.kancloud.cn/manual/thinkphp5/177576fastadmin的nginx配置,官方文档参考:https://doc.fastadmin.net/doc/faq.htmlserver {        listen       80;        server_name  www.fa.com *.fa.co......
  • Nginx配置文件解读
    Nginx安装完毕后,会产生相应的安装目录,根据前面的安装路径,Nginx的配置文件路径为/usr/local/nginx/conf其中nginx.conf为Nginx的主配置文件这里重点介绍下nginx.conf这个配置文件。Nginx配置文件默认有五个部分组成:分别是main、events、http、server和location其中:main部分设......
  • 安装nginx
    Nginx版本分为主线版、稳定版和历史版本在官方网站中Mainlineversion表示目前主力在做的版本,可以说是开发版,开发版更新速度较快,从官网上看大约一个月更新1-2次Stableversion表示最新稳定版,也就是生产环境上建议使用的版本Legacyversions表示遗留的历史稳定版1、安装Ngin......
  • linux安装nginx
    安装依赖//一键安装四个依赖环境yum-yinstallgcczlibzlib-develpcre-developensslopenssl-devel上传压缩包并解压上传nginx压缩包到/usr/local/nginx目录下tarxvfnginx-1.24.0.tar.gz安装nginxcdnginx-1.24.0#指定nginx安装的目录./configure--prefix......
  • docker安装nginx
    下载nginx镜像dockerpullnginx:1.24.0简易启动nginxdockerrun-p81:80-d--namesimple-nginxnginx:1.24.0创建本地挂载文件夹#创建四个文件夹conf,log,html,conf.dmkdir-p/home/nginx/{conf,logs,html,conf.d}复制简易nginx中的文件到挂载目录中#复制......