nginx日志切割

当网站访问量大后,日志数据就会众多,即便一切写到三个日记文件中去,文件会变得越发大。文件大速度就会慢下来,比如三个文件几百兆。写入日志的时候,会影响操作速度。其余,假设自身想看看访问日志,二个几百兆的文书,下载下来打开也极慢。

为了有利于对日记进行分析总计,要求对日记举办定时切割。定时切割的法子有依照月切割、按天切割,按小时切割等。最常用的是按天切割。

配置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_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

相关文章