nginx日志文件切割

createh51周前 (06-12)技术教程5

使用脚本对nginx日志文件进行按天切割

#!/bin/bash
LOGS_PATH=/usr/local/nginx/logs
YESTERDAY=$(date -d -1day +%Y%m%d)
cd ${LOGS_PATH}
#按天切割日志
mv ${LOGS_PATH}/access.log ${LOGS_PATH}/access_${YESTERDAY}.log
#向 Nginx 主进程发送 USR1 信号,重新打开日志文件,否则会继续往mv后的文件写内容,导致切割失败
kill -USR1 `ps axu | grep nginx| grep master | awk '{print $2}'`
#压缩
gzip -9 ${LOGS_PATH}/access_${YESTERDAY}.log
#删除7天前的日志
find . -mtime +7 -name "*20[1-9][3-9]*" | xargs rm -f
exit 0

然后配置crontab进行每天切割使用

使用logrotate对nginx日志进行切割

[root@iZ25b31bdp0Z gitlab-8.5.7-0]# cat /etc/logrotate.d/nginx 
/var/log/nginx/*log {
    create 0644 nginx nginx
    daily         //可以选择weekly,monthly,切割周期
    rotate 10    //一次存储10个文件,超出数量最早生成的文件会被删除
    missingok    //忽略错误
    notifempty   //空文件不存储
    compress    //启动压缩
    sharedscripts
    postrotate
        /bin/kill -USR1 `cat /run/nginx.pid 2>/dev/null` 2>/dev/null || true
    endscript  
//其它命令执行完成后,再执行postrotate与endscript中间的命令,两者是固定格式
}

相关文章

你还在为 Spring Boot3 读取 Nginx 的 Access.log 日志发愁?

你有没有过这样的经历?在互联网大厂后端开发的工作中,想要利用 Spring Boot3 读取 Nginx 的 Access.log 日志,进行深入分析,却总是困难重重。明明知道这些日志里藏着用户行为、...

你是不是也遇到过:Spring Boot3 读 Nginx 日志文件时无从下手?

在互联网大厂后端开发领域,对 Nginx 的 Access.log 日志进行深度分析是保障系统稳定运行、优化服务性能的关键环节。作为后端开发人员,我们期望从这些日志中挖掘用户访问行为、接口调用情况等有...

Nginx access_log 运行日志查询和配置

1. 介绍当我们学会Nginx的基本配置之后,可以通过Nginx配置Service代理。管理服务器所有的http和https请求。那么接下来就需要了解Nginx的日志控制,以及相关的文档查看了。你通过...

fluent-bit 收集nginx日志

简介Fluent Bit 是一款快、轻且高度可扩展的日志和指标采集器。与logstash对比更省资源。nginx日志可以让我们分析出很多信息,多个应用采集到elasticsearch之后,可以让查询统...

Nginx负载均衡:nginx.conf配置文件说明!

大家好,欢迎来到程序视点!我是你们的老朋友.小二!在此记录下Nginx服务器nginx.conf负载均衡的配置文件说明, 部分注释收集与网络.关于nginx.conf基本的配置,请查看上一篇文章!Ng...

nginx打印请求头日志方法-openresty

一、前言之前想用nginx打印收到的请求的请求头,但是只找到打印请求体的,没有打印请求头的,感觉原版nginx不支持。建议如果想打印请求头,先换成openresty(本人安装的是openresty-1...