#!/bin/bash
# This script run at 00:00
# The Nginx logs path
logspath="/var/log/nginx"
cd $logspath
mv error_log error_log.$(date -d "yesterday" +"%Y%m%d")
files=`ls *access_log`
for file in $files
do
mv $file $file.$(date -d "yesterday" +"%Y%m%d")
done
#重新打开日志文件 <span style="color: rgb(51, 51, 51); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 23px;">而在nginx中,它自己编写了代码处理当我接到USR1信号的时候,让nginx重新打开日志文件</span>
kill -USR1 `cat /var/run/nginx.pid`
# freebsd
#/usr/bin/bzip2 *`date -v-1d +%Y%m%d`
# linux 对文件进行压缩
/bin/bzip2 *`date --date "1 days ago" +%Y%m%d`
# clean 只保存近30天的日志
find ./ -name "*.bz2" -mtime +30 | xargs rm -rf
压缩文件利用 bzcat 命令进行查看
可以进行分析每天的ip访问情况
例如: bzcat /var/log/nginx/xx_access_log.$date.bz2 | awk \"{print \\$1}\" | sort | uniq | wc -l