码迷,mamicode.com
首页 > 其他好文 > 详细

nginxi日志切割

时间:2017-06-30 13:59:32      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:rip   cal   round   打开   重载   ash   配置   文件   数据   

当网站访问量大后,日志数据就会很多,如果全部写到一个日志文件中去,文件会变得越来越大。文件大速度就会慢下来,比如一个文件几百兆。写入日志的时候,会影响操作速度。另外,如果我想看看访问日志,一个几百兆的文件,下载下来打开也很慢。

为了方便对日志进行分析计算,需要对日志进行定时切割。定时切割的方式有按照月切割、按天切割,按小时切割等。最常用的是按天切割。

配置shell脚本

#!/bin/bash
# 必须每天00:00运行

#日志保留天数
DAY=7

LOGS_PATH="/usr/local/webserver/nginx/logs" #nginx日志存放目录

mkdir -p ${LOGS_PATH}/$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")  #建立以日期的日志文件夹
mv -f ${LOGS_PATH}/access.log ${LOGS_PATH}/$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/access_$(date -d "yesterday" +"%Y%m%d").log    #备份access.log到以日期的日志文件夹中
mv -f ${LOGS_PATH}/error.log ${LOGS_PATH}/$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/error_$(date -d "yesterday" +"%Y%m%d").log    #备份error.log到以日期的日志文件夹中

/etc/init.d/nginx reload   #重载告诉nginx重新打开日志。
for ACCESS_LOG in `find ${LOGS_PATH}/ -type f -name "access_[0-9]*.log" -mtime +${DAY}`;do   
rm -f ${ACCESS_LOG}
done        #删除7天以前的日志。
for ERROR_LOG in `find ${LOGS_PATH}/ -type f -name "error_[0-9]*.log" -mtime +${DAY}`;do
rm -f ${ERROR_LOG}
done    

######## -mtime   -n +n                #按文件更改时间来查找文件,-n指n天以内,+n指n天以前

 

写入到计划任务中:

00 00 * * * /bin/sh /usr/local/webserver/nginx/script/cut_nginx_log.sh

nginxi日志切割

标签:rip   cal   round   打开   重载   ash   配置   文件   数据   

原文地址:http://www.cnblogs.com/qinyujie/p/7098139.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!