Nginx日志切割

柔光的暖阳◎ 2023-05-28 15:46 89阅读 0赞

Nginx日志没有类似Apache这样通过cronlog或者rotatelog对日志分割处理的能力。实际的问题是线上的日志如果不按天进行切割,那么日志就会越来越大,可以达到几G、几十G甚至几百G。这样如果需要在日志中查找问题的话,要花费很长的时间。

我们运维人员可以利用定时脚本来实现nginx日志的按天切割,并进行压缩归档。

  1. #!/bin/bash
  2. logs_path=/usr/local/nginx/logs
  3. Yesterday=`date -d yesterday +%Y%m%d`
  4. cd $logs_path && mkdir -p log_pre/$Yesterday
  5. for i in access.log error.log
  6. do
  7. gzip -c $i > log_pre/$Yesterday/${i}_${Yesterday}.gz
  8. echo " " > $i
  9. done
  10. find log_pre -ctime +60 | xargs rm -rf

脚本中的日志目录可以根据实际情况进行更改。日志保留的时间我这里设置的是60天。

然后把这个脚本加入到定时任务中,每天0点执行,就实现了nginx日志按天切割的目的了。

发表评论

表情:
评论列表 (有 0 条评论,89人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Nginx日志切割

    Nginx日志没有类似Apache这样通过cronlog或者rotatelog对日志分割处理的能力。实际的问题是线上的日志如果不按天进行切割,那么日志就会越来越大,可以达到几G

    相关 Nginx日志切割

    默认情况下,nginx的日志比如:error.log,access.log都保存在/usr/local/nginx/logs目录下,慢慢的,日志会累积的越来越大,因此我们需要以

    相关 nginx日志切割

    概述 nginx的日志一般保存在logs文件夹下,随着运行时间加长,日志文件越来越大,阅读和查找也更加困难 有必要对日志文件进行切割  一般是以天为单位 添加定时任

    相关 nginx日志切割

    Web 访问日志 (access\_log) 记录了所有外部客户端对Web服务器的访问行为,包含了客户端IP,访问日期,访问的URL资源,服务器返回的HTTP状态码等重要信息。