Nginx之——日志按日期分割的实现(基于CentOS操作系统)

Nginx自身是没有按日期切割日志的功能,可以用shell脚本实现。新建一个cut_log.sh,

#!/bin/sh
# Program:
#     Auto cut nginx log script.

# nginx日志路径
LOGS_PATH=/usr/local/nginx/logs
TODAY=$(date -d ‘today‘ +%Y-%m-%d)

# 移动日志并改名
mv ${LOGS_PATH}/error.log ${LOGS_PATH}/error_${TODAY}.log
mv ${LOGS_PATH}/access.log ${LOGS_PATH}/access_${TODAY}.log

# 向nginx主进程发送重新打开日志文件的信号
kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)

然后给上面的脚本授权

chmod u+x cut_log.sh

然后是加到定时任务中

crontab -e

0 0 * * * bash /usr/local/nginx/logs/cut_log.sh

原文地址:https://www.cnblogs.com/azhqiang/p/10244537.html

时间: 2025-01-06 16:18:12

Nginx之——日志按日期分割的实现(基于CentOS操作系统)的相关文章

Linux nginx日志按天分割实例

Linux nginx日志按天分割实例 nginx的日志有个小缺点,日志文件一直就是一个,不会自动地进行切割,如果访问量很大的话,将导致日志文件非常大,不便于管理 这就需要我们自己来实现了,按日期每天生产一个日志文件 思路 每天零点把默认日志文件改名为当天日期,再重新打开新的日志文件 使用定时任务来执行脚本,脚本中执行改名和重新打开日志文件的操作 向Nginx主进程发送 USR1 信号,就可以重新打开日志文件 实现 #/bin/bash #备份日志的路径bakpath='/home/nginx/

实现Nginx的日志分割!

时间越久内存占用率越高,高并发量,会给服务器带来巨大的缓存压力 解决方法:创建一个新的目录,设置周期性计划定期的将旧目录里面的日志移动到新目录中,一般只保存30天内,30天后一律删除 [[email protected] ~]# date "+%Y%m%d"                                  //今天的时间20190913[[email protected] ~]# date -d "-1 day" "+%Y%m%d&quo

2018-3-14 12周3次课 Nginx访问日志、日志分割、日志不记录静态文件和过期时间

12.10 Nginx访问日志 ·日志格式: [[email protected] ~]# vim /usr/local/nginx/conf/nginx.conf 搜索log_format (虽然红框中有三行,但实际上时一行配置,以分号为结尾) combined_realip 定义日志格式名字,此处定义成什么,那么后面引用时就要写成什么 公网ip(出口ip) ·除了在主配置文件nginx.conf里定义日志格式外,还需要在虚拟主机配置文件中增加 access_log /tmp/1.log co

nginx 设置日志分割

server { listen       80; server_name  bmw2.thefront.com.cn; charset utf-8; if ($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})") { set $year $1; set $month $2; set $day $3; } access_log  /home/weblogs/bmw2.thefront.com.cn.access.$year.$month.$day.log

Linux系统下的Nginx的日志设置

(本文内所有centos的系统命令使用斜杠加粗的形式表示,方便各位阅读) 我想不少人跟我一样,在最开始接触Linux的时候,从心底是很反感的,明明放着windows那么图文并茂的系统不用,偏偏要搞这个黑乎乎的系统界面,总觉得有一种重返DOS的感觉.而且最重要的是,Windows的配置是在软件界面里,对着配置的地方点点鼠标或者选择一下地址栏等等,比较容易上手.而且windows的编辑界面都支持ctrl+z这个撤销命令,要是一些配置不小心被自己碰了,只要不关界面大不了就ctrl+z就能还原成原始的样

分析nginx大日志文件,python多线程必备! .

还在为分析nginx大日志犯愁吗?也许你会想到用shell处理,1G文件没有问题,上了10G文件,会消耗很久时间,用shell结合python多线程处理没有错. 什么都不用说了,直接上代码了 #!/usr/bin/python #coding:utf8 import threading     #载入多线程模块 import time          #载入时间模块 import os            #载入os模块 import shutil        #载入shutil模块 im

线上nginx访问日志切割脚本

1.说明 随着时间的增加,nginx 的访问日志会越来越大,下图是新部署的线上 zabbix 监控网站运行了十几天左右产生的访问日志达到213M. 所以必须进行日志分割,要求如下: 1.每天的日志单独生成一个文件 2.保留30天的访问日志 2.编写脚本 vim /usr/local/nginx/logs/nginx_log_rotate.sh #! /bin/bash logs_path="/usr/local/nginx/logs/" log_name="access.lo

log4j日志按日期分隔

log4j2.x的日志在性能上有很大的提升,也被标识为下一代的异步日志管理系统.项目组在使用的时候,发现日志没有按照日期进行文件分割.于是亲自上log4j2.x的官网查看了部分文档.按如下配置即可实现日志按日期进行分割: <?xml version="1.0" encoding="UTF-8"?> <Configuration> <Appenders> <!-- 配置日志输出文件名字 追加读写 --> <Roll

nginx实现日志按天切割

背景 nginx的日志文件没有rotate功能.一段时间过后,日志将越发臃肿,一个accesslog很快就突破1G,因此有必要通过脚本实现按天切割日志. 解决思路 1  重命名日志文件,如更改为access_yyyyMMdd.log,需注意的是nginx通过文件描述符定位日志文件,因此在重命名之后还是能往该文件内写入内容. 2  向nginx主进程发送USR1信号. nginx的master进程接到信号后: 重新从配置文件中读取日志文件名 -> 关闭重名日志文件 -> 创建并打开日志文件(原来