Linux nginx日志按天分割实例

Linux nginx日志按天分割实例

nginx的日志有个小缺点,日志文件一直就是一个,不会自动地进行切割,如果访问量很大的话,将导致日志文件非常大,不便于管理

这就需要我们自己来实现了,按日期每天生产一个日志文件

思路

每天零点把默认日志文件改名为当天日期,再重新打开新的日志文件

使用定时任务来执行脚本,脚本中执行改名和重新打开日志文件的操作

向Nginx主进程发送 USR1 信号,就可以重新打开日志文件

实现

#/bin/bash

#备份日志的路径
bakpath=‘/home/nginx/logs‘

#nginx日志路径
logpath=‘/usr/local/nginx/logs‘

#在备份路径下创建年月子目录
mkdir -p $bakpath/$(date +%Y)/$(date +%m)

#移动日志文件到备份路径,并改名为日期格式
mv $logpath/access.log $bakpath/$(date +%Y)/$(date +%m)/access.$(date +%Y%m%d).log

mv $logpath/error.log $bakpath/$(date +%Y)/$(date +%m)/error.$(date +%Y%m%d).log

#用 USR1 信号让nginx重新打开日志文件
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`

时间: 2024-10-14 19:04:22

Linux nginx日志按天分割实例的相关文章

nginx日志按天分割

nginx日志分为error日志和access日志,在nginx.conf中可以定义 现在有个问题是:nginx日志会一直增长,并未按天切割,不仅不好查询日志,而且历史日志也不能归档 nginx本身没有提供按天分割的方法,我们可以利用linux系统的logrotate工具实现(linux的/var/log/wtmp就是利用logrotate分割的) vim /etc/nginx_rotate /wls/apache/servers/pacap/logs/*.log {     daily    

nginx日志分割:windows和linux

一.为什么对日志进行分割. 1.nginx日志默认情况下统统写入到一个文件中,文件会变的越来越大. 2.单个的日志文件非常不方便查看分析. 二.简析日志分割. 不论是windows还是linux,对日志的分割都是一条思路.即: 1.对现有日志文件进行重命名. 2.生成新的日志文件. 3.定制脚本,定时执行. 三.日志分割实操. windows系统: 1.logcut.bat #定义时间(年月日) for /f "tokens=1 delims=/ " %%j in ("%da

nginx 日志分割(简单、全面)

Nginx 日志分割 因业务需要做了简单的Nginx 日志分割, 第1章 详细配置如下. #建议在mkdir  /home/shell  -p 专门写shell 脚本位置 [email protected]:/home/shell# cat nginxcut.sh #!/bin/sh ##### #by xuebao #2017.05.16 date=`date +%Y%m%d` nginxlog="/app/logs/nginx/" /bin/mv ${nginxlog}www_ac

nginx日志分割处理以及分析

在很多时候,我们会非常关注网站的访问量,比如网站的日PV是多少.网站某个功能上线之后点击量是多少,像这些东西都是需要从web容器中的访问日志统计出来的,下面我们看一下如何在nginx中统计网站的访问信息 1.设置Nginx访问日志记录格式 在默认情况下,nginx只是记录相关get信息,像post页面是不记录的,所以下面需要修改nginx.conf,让其访问日志记录post等请求信息,在nginx.conf中server段中加入如下信息 log_format  access  '$remote_

【Linux】【Web】【Nginx】配置nginx日志到远程syslog服务器

1. 概述: 主要是用于吧nginx的日志直接传送到远程日志收集的服务器上.远程日志服务器只要能够支持syslog协议都能够收到日志,本文的syslog服务器是IBM的日志收集系统Qradar. 2. 环境: OS:Red Hat Enterprise Linux Server release 6.7 (Santiago) Kernel:Linux cftjnginx01.homecredit.cn 2.6.32-573.el6.x86_64 #1 SMP Wed Jul 1 18:23:37

Linux下添加shell脚本使得nginx日志每天定时切割压缩

Linux下添加shell脚本使得nginx日志每天定时切割压缩一 简介 对于nginx的日志文件,特别是access日志,如果我们不做任何处理的话,最后这个文件将会变得非常庞大 这时,无论是出现异常时查日志,还是使用"GoAccess"等工具对日志进行分析都将会变得非常麻烦.因此,每天定时对nginx日志进行切割压缩就非常有必要了 二 实现 我的实现思路是每天晚上接近12点时定时执行脚本.其脚本内容就是将当前的nginx日志先按照当天日期进行重命名接着进行压缩,最后是新建空白的ngi

Linux系统中nginx日志每天定时切割实现方法详解

本文和大家分享的是使用Linux中自带的命令logrotate对Nginx日志进行切割相关实现方法,希望帮助大家更好的学习linux系统. Nginx安装目录:/usr/local/nginx/ Nginx日志目录:/usr/local/nginx/logs/./usr/local/nginx/logs/nginx_logs/ 1.添加nginx日志切割脚本 cd /etc/logrotate.d #进入目录 vi /etc/logrotate.d/nginx #编辑脚本 /usr/local/

nginx日志分割脚本

nginx 日志分割,可以分割一年内没有分割的日志,以每天一个日志文件打包 转载请注明出处:http://lm3810.blog.51cto.com/846925/1860543 #!/bin/bash #hls_nginx_log_cut.sh #by Louis 2016/10/10 logs_path='/data/store/logs/www/' #日志文件所在路径 files=`ls $logs_path` backup_path='/data/store/backuplogs/' #

nginx日志分割小脚本

nginx的日志一直是写在一个文件上面,运行久了之后文件会非常大,因此我们有必要对nginx的日志进行分割: 1 2 3 4 5 6 7 8 9 10 11 #! /bin/bash ACCESS_LOG=/data/nginx/www.log ERROR_LOG=/data/nginx/error.log YESTERDAY=$(date -d "yesterday" +%Y-%m-%d) #mv logs echo "move log files" mv ${A