首页 > 系统相关 >Nginx log 日志分割

Nginx log 日志分割

时间:2023-02-06 12:44:05浏览次数:51  
标签:log nginx access Nginx date 日志 bak logs

Nginx日志不处理的话,会一直追加,文件会变得很大

方法1:给日志文件名加上日期【推荐】

log_format access-upstream '$time_iso8601|$request|$remote_addr|$upstream_response_time|$http_user_agent|$http_x_forwarded_for';
    map $time_iso8601 $logdate {
    '~^(?<ymd>\d{4}-\d{2}-\d{2})' $ymd;
    default                       'date-not-found';
}
access_log logs/access-$logdate.log ; 
# 验证文件配置是否正确
nginx -t
# 重新加载配置文件
nginx -s reload

# 观察,如果不生效,就把进程杀掉再打开

如下图所示

 

 

 

 

 

方法2:文件切割

会 kill 进程,比较复杂,不推荐

Linux

nginx_log.sh

#!/bin/bash
date=$(date +%F -d -1day)
cd  /usr/local/nginx/logs
if [ ! -d bak ] ; then
        mkdir -p bak
fi
mv access.log bak/access_$date.log 
mv error.log bak/error_$date.log        
# /usr/bin/nginx -s reload       
kill -s SIGUSR1 $(cat /usr/local/nginx/logs/nginx.pid)
tar -jcvf bak/$date.tar.gz bak/access_$date.log bak/error_$date.log
find /usr/local/nginx/logs/bak -mtime +30 -name "*.gz" -exec rm -rf {} \;
find /usr/local/nginx/logs/bak -mtime +1 -name "*.log" -exec rm -rf {} \;

 添加到定时任务

crontab -e #打开定时任务

i #进入编辑模式
0 1 * * * /bin/sh /opt/shell/nginx_log.sh #添加任务
:wq! #保存退出

 

如果报错:

tar (child): bzip2: Cannot exec: No such file or directory
tar (child): Error is not recoverable: exiting now

yum -y install bzip2

 

 

 Windows

taskkill /F /IM nginx.exe > nul
rem date格式:Wed 11/02/2016
set today=%date:~0,4%-%date:~5,2%-%date:~8,2%
set dir=D:\nginx-1.20.1\logs\backup
md "%dir%"

rem access log 
move "D:\nginx-1.20.1\logs\access.log" "%dir%\access-%today%.log"

start "D:\nginx-1.20.1\nginx.exe"

 

标签:log,nginx,access,Nginx,date,日志,bak,logs
From: https://www.cnblogs.com/vipsoft/p/16669189.html

相关文章

  • sysaux表空间AUD$UNIFIED统一审计日志过大
    1.设置保留时间点 begindbms_audit_mgmt.set_last_archive_timestamp(audit_trail_type=>dbms_audit_mgmt.audit_trail_unified,last_archive_time=......
  • DaemonSet方式部署nginx-ingress
    前言nginx-ingress是k8s官方维护的一个IngressController,具体使用,官方有详细的文档:https://kubernetes.github.io/ingress-nginx/deploy/直接按照官方文档进行安装,一般......
  • Nginx常见漏洞处理
    1.检测到目标URL存在httphost头攻击漏洞【中危】描述:为了方便的获得网站域名,开发人员一般依赖于HTTPHostheader。例如,在php里用_SERVER["HTTP_HOST"]。但是这个header......
  • python接口自动化-logging日志
    logging模块的日志级别:日志级别一共有5个从低到高如下,作用是在当你给python函数赋予日志器时,需要自己标记日志级别(后面会用到)DEBUG(调试级别):严重程度最低级别,详细程度最......
  • 基于.NetCore开发博客项目 StarBlog - (26) 集成Swagger接口文档
    前言这是StarBlog系列在2023年的第一篇更新......
  • Spring3 - Log4j2日志框架
    启用Log4j2日志框架Log4j2日志概述在项目开发中,日志十分的重要,不管是记录运行情况还是定位线上问题,都离不开对日志的分析。日志记录了系统行为的时间、地点、状态等相关......
  • Nginx unexpected end of file 配置证书遇到问题,如何解决?
    原文链接https://bysocket.com/nginx-unexpected-end-of-file-expecting-in-key-file/一、Nginxunexpectedendoffile问题通过letsencrypt申请证书后,默认服务器安......
  • 7.3【微信小程序全栈开发课程】小程序上线--nginx安装、SSL证书安装
    1、安装nginxnginx是一个强大的http服务器,作用是解析链接信息,告诉服务器客户端需要做什么比如nginx收到了链接信息http://localhost:8000/hello/index.html,就告诉服务器客户......
  • Spring boot 3.0 日志
    springboot3.0已经自己集成了日志功能 logbackSpringBoot启动时自动加载配置文件,配置文件的默认名称为:logback.xml或logback-test.xml其它的文件需要配置yall......
  • React-cnblog
    1.生命周期老版本16.3及以前新版本16.4及以后1.2错误处理的生命周期staticgetDerivedStateFormErrorcomponentDidCatch2.父子通讯父传子propsProt......