Icon

Littleor

1508 分类: 运维

Nginx日志分割

最近在重新搭建服务器,遇到了Nginx日志过大需要切割的问题,在查阅相关文档后发现网上的普遍做法是移动指定的access.log到指定文件夹下。而这和我想把每个log文件分天保存略有差异故记录此文。

为什么分割

Nginx下通过对.conf文件配置access_log来实现Nginx记录请求日志,如下配置就是将日志保存在wwwlogs目录下.

    server{
         access_log  /home/wwwlogs/XXXXX.log;
     }

而我们有许多Web服务的时候就会有很多这里的log文件,同时请求量一大就会有很多日志,日志文件一大就会拖慢处理速度,故我们需要对日志进行定期分割。

如何分割

这里按照主流做法,每日定期将.log文件移动到指定目录下,再通知Nginx重新创建.log文件。

#! /bin/bash
base_path='/home/wwwlogs'
date=$(date -d "yesterday" +"%Y-%m-%d")

mkdir -p $base_path/$date
mv $base_path/*.log $base_path/$date/
sudo kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`

如何定时

这里直接借助crontab来实现定时执行:

0 1 * * * /home/littleor/shell/log_segmentation.sh

上述为每日凌晨1点执行,具体使用可通过man crontab查看

#none

作者: Littleor

版权: 除特别声明,均采用BY-NC-SA 4.0许可协议,转载请表明出处

目录Content

评论