服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

云服务器|WEB服务器|FTP服务器|邮件服务器|虚拟主机|服务器安全|DNS服务器|服务器知识|Nginx|IIS|Tomcat|

服务器之家 - 服务器技术 - Nginx - 分割nginx日志的实现(避免日志多大)

分割nginx日志的实现(避免日志多大)

2024-04-18 14:50前路无畏 Nginx

nginx默认没有提供对日志文件的分割功能,所以随着时间的增长,access.log和error.log文件会越来越大,本文主要介绍了分割nginx日志的实现,具有一定的参考价值,感兴趣的可以了解一下

1. 问题提出

nginx的日志没有切分,会非常大,不利于日志的删除和查看

分割nginx日志的实现(避免日志多大)

2. 解决思路

  • 写一个脚本,去切分日志
  • 使用crontab写一个定时任务,每天切一个。

3. 解决流程

脚本时别人的,拿过来用。

3.1 新建切割日志的脚本/opt/sh/cutlogs.sh

内容如下:

#!/bin/bash

# 指定日志和切割后日志备份的目录
YEAR=$(date +%Y)
MONTH=$(date +%m)
DAY=$(date +%d)
YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)
LOGS_PATH=/data/docker/saber/logs
LOGS_BAK_PATH=/data/docker/saber/logs-bak

# 得到1级目录名
if [[ $(($DAY)) -eq 1 ]]
  then
    if [[ $(($MONTH)) -eq 1 ]]
      then
        LOGS_BAK_PATH=$LOGS_BAK_PATH/$((${YEAR}-1))-12
    else
      if [[ $(($MONTH)) -gt 10 ]]
        then
          LOGS_BAK_PATH=$LOGS_BAK_PATH/${YEAR}-$((${MONTH}-1))
      else
          LOGS_BAK_PATH=$LOGS_BAK_PATH/${YEAR}-0$((${MONTH}-1))
      fi
    fi
else
    LOGS_BAK_PATH=$LOGS_BAK_PATH/${YEAR}-${MONTH}
fi

# 创建目录
mkdir -p $LOGS_BAK_PATH/${YESTERDAY}

# 复制当前的日志文件到备份的目录
cp ${LOGS_PATH}/access.log ${LOGS_BAK_PATH}/${YESTERDAY}/access_${YESTERDAY}.log
#cp ${LOGS_PATH}/admin_access.log ${LOGS_BAK_PATH}/${YESTERDAY}/admin_access_${YESTERDAY}.log
cp ${LOGS_PATH}/error.log ${LOGS_BAK_PATH}/${YESTERDAY}/error_${YESTERDAY}.log

# 清空日志
> ${LOGS_PATH}/access.log
#> ${LOGS_PATH}/admin_access.log
> ${LOGS_PATH}/error.log

3.2 写crontab定时任务

crontab -e

打开crontab

写入任务,每天1点跑定时任务:

0 1 * * * sh /opt/sh/cutlogs.sh >> /opt/sh/cutlogs.log

3.3 结果

结果如下:

日志全部在/data/docker/saber/logs-bak目录下

分割nginx日志的实现(避免日志多大)

logs-bak下面是月

分割nginx日志的实现(避免日志多大)

月下面是天

分割nginx日志的实现(避免日志多大)

天下面是文件

分割nginx日志的实现(避免日志多大)

4. 总计

  • 使用脚本去做切分
  • 使用定时器去每天跑脚本。

 到此这篇关于分割nginx日志的实现(避免日志多大)的文章就介绍到这了,更多相关分割nginx日志内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://yuhongliang.blog.csdn.net/article/details/111300852

延伸 · 阅读

精彩推荐
  • Nginx一篇文章读懂nginx的gzip功能

    一篇文章读懂nginx的gzip功能

    nginx提供了对文件内容压缩的功能,允许将内容在发送到客户端之前根据具体的策略进行压缩从而节约带宽,下面这篇文章主要给大家介绍了如何通过一篇文章...

    乘风破浪20213772022-08-08
  • Nginx教你使用Nginx限制百度蜘蛛频繁抓取的问题

    教你使用Nginx限制百度蜘蛛频繁抓取的问题

    这篇文章主要介绍了使用Nginx限制百度蜘蛛频繁抓取的问题,百度蜘蛛对网站的抓取频率高和抓取量骤增导致服务器负载高,经常收到警告信息,每分钟允许...

    ning2354342022-07-27
  • NginxNginx中if语句的判断条件与多条件判断详解

    Nginx中if语句的判断条件与多条件判断详解

    这篇文章主要介绍了关于Nginx中if语句的判断条件与多条件判断的相关资料,文中给出了详细的示例代码,对大家具有一定的参考价值,需要的朋友们下面来...

    宋兴柱6802019-11-24
  • NginxNginx配置详解之配置文件模板分析

    Nginx配置详解之配置文件模板分析

    Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的。从2004年发布至今,凭借开源的力量,已经接近成熟与完善。...

    波波说运维5602021-06-01
  • NginxELK监控nginx日志的整体流程

    ELK监控nginx日志的整体流程

    这篇文章主要介绍了ELK监控nginx日志总结,整体流程是先把logstash启动,读取nginx日志数据存储到ES中,再用kibana进行统计以及可视化,本文给大家介绍的非常...

    andandan8212022-07-28
  • Nginxnginx add_header指令使用方法

    nginx add_header指令使用方法

    这篇文章主要介绍了nginx add_header指令使用方法,nginx配置文件通过使用add_header指令来设置response header,需要的朋友可以参考下 ...

    nginx教程网12822019-10-16
  • Nginx浅谈Nginx 中的两种限流方式

    浅谈Nginx 中的两种限流方式

    这篇文章主要介绍了浅谈Nginx 中的两种限流方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    码代码的陈同学13792020-12-26
  • Nginxnginx+iis实现简单的负载均衡

    nginx+iis实现简单的负载均衡

    这篇文章主要为大家详细介绍了nginx+iis实现一个简单的负载均衡的方法,感兴趣的小伙伴们可以参考一下 ...

    焰尾迭6102019-11-11