nginx按分钟切割日志

网上有许多按照天切割日志的。但是由于应用需要,对该web服务器进行更详细的分析!所以要按照分钟切割。研发部门的要求是他们有一个工具是扫描日志的工具,扫描完成后的日志会有.complete的后缀,扫描完的日志全部移到history_logs中。采用的是两个脚本来完成的此需求!

1.切割日志的脚本如下:

vim nginx_log.sh

#!/bin/bash
#将nginx的日志按照分钟切割

#定义日志文件的路径
logs_path=/opt/nginx/logs/

#定义nginx的进程号的路径
pid_path=/opt/nginx/logs/nginx.pid

#取当前时间的day
dd=`date +%F`

#当前时间的小时
HH=`date +%H`

#当前时间的分钟
mm=`date +%M`
#将日志文件按照分钟切割的关键命令
mv ${logs_path}access.log ${logs_path}access-$dd-$HH-$mm.log

#将当前分钟的进程号杀死的同时,启动下一分钟nginx的进程
kill -USR1 `cat ${pid_path}`

需要将该文件放在/opt/nginx/sbin 目录下,这样方便直接直接执行。

因为是按照每分钟切割日志,所以我们使用crontab命令

#crontab -e

#该语句就是每分钟执行一次该脚本

*/1 * * * * /opt/nginx/sbin/nginx_log.sh

我们可以观察在logs目录下会产生大量的日志,是类似access-2015-09-08-10-39.log 的文件。他们要求是有工具扫描这大量的日志,最后都是以.complete的文件我们需要移动到与logs同级的目录history_logs中的对应日期中去。

2.移动脚本如下:

vim move_logs.sh

#!/bin/bash

#定义日志文件目录
logpath=/opt/nginx/logs/

#前一天的时间
lastdd=` date -d "yesterday" +%Y-%m-%d `

#进入到该目录中
cd /opt/nginx/history_logs

#创建前一天的日志目录
mkdir $lastdd

#开始将扫描过得前一天的日志移动到指定目录中

mv ${logpath}access-$lastdd-*.complete  $lastdd/

该脚本需要每天的凌晨执行,时间没必要那么精确。不耽误当天扫描当天的日志即可!

同样我们需要将该脚本放在/opt/nginx/sbin目录下

#crontab -e

30 00 * * * /opt/nginx/sbin/move_logs.sh

我所定的时间为凌晨12:30 执行移动脚本.

到此我们的按分钟切割脚本和移动日志文件脚本完成!

时间: 2024-07-30 13:41:30

nginx按分钟切割日志的相关文章

NGINX按天切割日志

NGINX按天切割日志 偶然发现access.log有46G大,所以将其切割. Nginx 是一个非常轻量的 Web 服务器,体积小.性能高.速度快等诸多优点.但不足的是也存在缺点,比如其产生的访问日志文件一直就是一个,不会自动地进行切割,如果访问量很大的话,将 导致日志文件容量非常大,不便于管理.当然了,我们也不希望看到这么庞大的一个访问日志文件,那需要手动对这个文件进行切割. 在 Linux 平台上 Shell 脚本丰富,使用 Shell 脚本+crontab 命令能非常方便地进行切割,操作

Nginx脚本方式切割日志

#!/bin/bash #Nginx的log日志目录 log_path='/opt/app/nginx/logs/' #Nginx的pid文件存放目录 pid_path="${log_path}nginx.pid" #清理掉指定日期前的日志 DAYS=60 #生成昨天的日志文件 #若指定10天前  date -d"10 day ago 2017-06-08" +%Y-%m-%d mv ${log_path}access.log ${log_path}access_$

【09】Nginx:静态压缩 / 日志切割 / 防盗链 /恶意解析/ 跨域

写在前面的话 上一节我们谈了关于 nginx 服务器的一些简单的安全优化问题,能够帮助我们解决一部分线上服务存在的安全隐患.但是想要提升用户体验这是原因不够的,我们还需要从服务的优化方面入手. 本节更多的还是偏理论的东西,会给出相应的配置.可能有些就无法立即做测试. 访问优化:静态压缩 我们知道一个网站总会有一些 CSS/JS 等静态文件需要加载,如果用户每次请求都需要去服务器下载一遍,比如 Jquery 这种根本不会变的.明显会造成带宽的浪费.同时由于用户可能本身网速还不好,就容易给用户带来不

Nginx日志文件格式及切割日志文件

作为web服务器而言,日志是必不可少的也是需要经常查看的.此篇就来介绍下如何自定义Nginx中的日志格式以及使用crontab计划任务来做到每天切割一次日志文件从而做到方便管理. 在Nginx中日志文件是由log_format这个指令来定义的,它的语法如下: log_format    name    format ##    name:指的是日志格式的名称(后面调用) ##    format:设置日志具体格式的 在Nginx中有自己默认的日志格式,如下内容:     #log_format 

Nginx配置:访问日志,日志切割,静态文件不记录日志和过期时间

一.访问日志 1.查看Nginx日志格式 [[email protected] ~]# grep -A2 log_format /usr/local/nginx/conf/nginx.conf log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local]' ' $host "$request_uri" $status' ' "$http_referer" "$htt

91.Nginx配置:访问日志,日志切割,静态文件不记录日志和过期时间

一.访问日志 1.查看Nginx日志格式 [[email protected] ~]# grep -A2 log_format /usr/local/nginx/conf/nginx.conflog_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local]'' $host "$request_uri" $status'' "$http_referer" "$http_u

nginx访问、错误日志详解

1.日志简介 nginx日志主要有两种:访问日志和错误日志.访问日志主要记录客户端访问nginx的每一个请求,格式可以自定义:错误日志主要记录客户端访问nginx出错时的日志,格式不支持自定义.两种日志都可以选择性关闭. 通过访问日志,你可以得到用户地域来源.跳转来源.使用终端.某个URL访问量等相关信息:通过错误日志,你可以得到系统某个服务或server的性能瓶颈等.因此,将日志好好利用,你可以得到很多有价值的信息. 2.访问日志 [Access.log] log_format  main  

Nginx 基本配置和日志分析

最近在维护的一个项目,路由转发规则都统一通过Nginx转发,所以再次参考部分博文和书本,熟悉Nginx的基本配置,还有一个重点也是日志的分析 Nginx 常用模块是server块,location块. 常用的location块配置: 语法规则: location [=|~|~*|^~] /uri/ { … } = 表示精确匹配,这个优先级也是最高的 ^~ 表示uri以某个常规字符串开头,理解为匹配 url路径即可.nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~

linux开机启动过程、PATH、过滤一级目录、cd的参数、ls -lrt、命令切割日志

      第二波命令正向我方来袭 :开机启动过程.PATH.过滤一级目录.cd的参数.ls -lrt.命令切割日志 1.1 linux开机启动过程 1.1.1  开机自检(BIOS)-- MBR引导 -- GRUB菜单 -- 加载内核(kernel)-- 运行INIT进程 -- 读取/etc/inittab配置文件 -- 执行/etc/rc.sysinit脚本(初始化脚本,如设置ip,hostname) -- 执行/etc/rc.d/rc(根据运行级别开机自启的软件)脚本 -- 启动/sbin