nginx自动切割日志访问文件脚本

#!/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
 
 



你可能感兴趣的:(nginx自动切割日志访问文件脚本)