记录这个就是方便自己以后查看!!!

nginx按天切割日志

脚本示例如下

#!/bin/bash
logs_path="/usr/local/openresty/nginx/logs/"
pid_path="/usr/local/openresty/nginx/logs/nginx.pid"
mv ${logs_path}access.log  ${logs_path}access_$(date -d "yesterday" +"%Y%m%d").log
gzip ${logs_path}access_$(date -d "yesterday" +"%Y%m%d").log
kill -USR1 `cat ${pid_path}`

计划任务cron

00 00  * * * /bin/bash cut_log_day.sh

注:gunzip access.log.gz解压后源文件消失,gunzip -c error.log.bak.gz > error.log.bak解压后保留源文件

此时脚本中也可以加入删除一周以前的压缩日志

#删除1周前的日志文件
del_tag=$(date "+%Y%m%d" -d "1 week ago")
/bin/rm -rf $logpath/$del_tag.tar.gz
或者使用find查看进行删除也是可以的



nginx按小时切割并压缩

脚本示例如下

#!/bin/bash
logs_path="/usr/local/openresty/nginx/logs/"
pid_path="/usr/local/openresty/nginx/logs/nginx.pid"
date_path=`date +%Y%m%d`
 
#收下这句用于判断,当时间为凌晨00:00时,将date_dri设为昨天
if [ "`date +%H`" = "00" ]; then
  date_path=`date -d "yesterday" +%Y%m%d`
fi
#将当前小时减一,因为记录的是之前的访问数据
tag=`date +%Y%m%d%H --date="-1 hour"`
/bin/mkdir -p ${logs_path}${date_path}
mv ${logs_path}access.log  ${logs_path}${date_path}/access_${tag}.log
gzip ${logs_path}${date_path}/access_${tag}.log
kill -USR1 `cat ${pid_path}

添加计划任务

00 */1 * * * /bin/bash  nginx_log_hour.sh

注:gzip ${logs_path}${date_path}/access_${tag}.log这个是压缩源文件后并消失,gunzip xx.gz这个命令是解压,解压后源文件消失,如何保留压缩后的文件话使用gunzip -c error.log.bak.gz > error.log.bak