nginx实现日志按天切割
背景
nginx的日志文件没有rotate功能。一段时间过后,日志将越发臃肿,一个accesslog很快就突破1G,因此有必要通过脚本实现按天切割日志。
解决思路
1 重命名日志文件,如更改为access_yyyyMMdd.log,需注意的是nginx通过文件描述符定位日志文件,因此在重命名之后还是能往该文件内写入内容。
2 向nginx主进程发送USR1信号。
nginx的master进程接到信号后:
重新从配置文件中读取日志文件名 -> 关闭重名日志文件 -> 创建并打开日志文件(原来的名称) -> 通过worker进程作出改变
代码实现
A. nginx日志按日期自动切割脚本
#author: http://www.nginx.cn
#!/bin/bash
#日志文件存放目录
logs_path="/usr/local/nginx/logs/"
# pid文件
pid_path="/usr/local/nginx/nginx.pid"
#重命名日志文件
mv ${logs_path}access.log ${logs_path}access_$(date -d "yesterday" +"%Y%m%d").log
#向nginx主进程发送信号以重新打开日志
kill -USR1 `cat ${pid_path}
保存为 cut-log.sh,
B. 设置定时任务 "crontab -e"
* * * bash /usr/local/nginx/nginx_log.sh
将于每天凌晨0点0分将nginx日志重命名为昨天的日期格式,并重新生成今天的新日志
其他实现
nginx实现日志按天切割的更多相关文章
- Nginx 访问日志轮询切割
Nginx 访问日志轮询切割脚本 #!/bin/sh Dateformat=`date +%Y%m%d` Basedir="/application/nginx" Nginxlog ...
- Nginx 错误日志配置
1.Nginx错误日志信息介绍: error_log的语法格式及参数说明: error_log file level; 关键字 日志文件 错误日志级别 其中,关键字 ...
- Nginx的日志剖析
1.访问日志(access.log) Nginx的访问日志就是一个文件,它存储着每个用户对网站的访问请求,这个功能是有ngx_http_log_module模块来负责的,这个文件存在的主要目的就是为了 ...
- 按日期切割nginx访问日志--及性能优化
先谈下我们需求,一个比较大的nginx访问日志,根据访问日期切割日志,保存在/tmp目录下. 测试机器为腾讯云机子,单核1G内存.测试日志大小80M. 不使用多线程版: #!/usr/bin/env ...
- Nginx的继续深入(日志轮询切割,重写,负载均衡等)
Nginx的访问日志轮询切割 通常什么情况Nginx会把所有的访问日志生成到一个制定的访问日志文件access.log里面,但时间一长,日志个头很大不利于日志的分析和处理. 有必要对Nginx日志进行 ...
- Linux下添加shell脚本使得nginx日志每天定时切割压缩
Linux下添加shell脚本使得nginx日志每天定时切割压缩一 简介 对于nginx的日志文件,特别是access日志,如果我们不做任何处理的话,最后这个文件将会变得非常庞大 这时,无论是出现异常 ...
- Nginx访问日志、 Nginx日志切割、静态文件不记录日志和过期时间
1.Nginx访问日志 配制访问日志:默认定义格式: log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_loc ...
- nginx高性能WEB服务器系列之八--nginx日志分析与切割
nginx系列友情链接:nginx高性能WEB服务器系列之一简介及安装https://www.cnblogs.com/maxtgood/p/9597596.htmlnginx高性能WEB服务器系列之二 ...
- Nginx日志配置与切割
访问日志主要记录客户端访问Nginx的每一个请求,格式可以自定义.通过访问日志,你可以得到用户地域来源.跳转来源.使用终端.某个URL访问量等相关信息. Nginx中访问日志相关指令主要有两条,一条是 ...
随机推荐
- 2016-1-8 Quartz框架的学习,多个气球上升的小动画
// // BallonView.m // 气球上升的动画 // // Created by Mac on 16/1/8. // Copyright © 2016年 Mac. All rights r ...
- ubuntu 输入时弹出剪切板候选项
fcitx很坑的把这个功能的快捷键设置成了ctrl + ;结果我在用vim的时候怎么也 没法输入command 不知道是哪次更新引入的,简直是坑人! 我找了半天系统设置都没找到这个快捷键是在哪设置的. ...
- OpenSesame:一个能够攻击fixed-pin设备的工具
OpenSesame是一种设备,这种设备可以通过无线技术来打开任何一个设有固定密码的车库门,我从中发现了一个攻击无线固定pin码设备的新方法. 演示视频以及详细信息: opensesame源代码:ht ...
- 计算几何----判断空间点是否在一个四面体(tetrahedron)内部
DESCRIPTION: 判断空间点 P(x, y, z)是否在一个四面体的内部? Let the tetrahedron have vertices V1 = (x1, y1, z1) V2 = ( ...
- Git ~ 添加远程仓库 ~Git
现在的情景是 , 你已经在本地创建了一个Git仓库后 , 又想在 Github 创建一个Git 仓库并且让这两个仓库进行远程同步 , 这样Github 上的仓库既可以作为备份 ,有可以让其他人通过仓库 ...
- 【LeetCode OJ】Triangle
Problem Link: http://oj.leetcode.com/problems/triangle/ Let R[][] be a 2D array where R[i][j] (j < ...
- Connection to DB
Connect to MySQL PHP5 and later can work with a MySQL database using MySQLi extension PDO PDO will w ...
- CodeForces 414D (贪心)
problem Mashmokh and Water Tanks 题目大意 给你一棵树,k升水,p块钱,进行一次游戏. 在游戏进行前,可以在任意个节点上放置1升水(总数不超过k) 游戏进行若干轮,每轮 ...
- 解决magento新闻邮件发送一直处于“正在发送”状态问题
今天在弄magento新闻邮件发送时候发现,单个邮件发送完全没有问题,但是新闻邮件订阅死活都不成功,国内国外的帖子都翻了一遍没有用,最后还是得靠自己了,于是开始慢慢找问题 首先想到是不是cront ...
- Ubuntu12.04更新openssl使用源码
下载openssl新版本源码和编译安装 wget ftp://ftp.openssl.org/source/openssl-1.0.2f.tar.gz tar zxf ./openssl-1.0.2f ...