记录这个就是方便自己以后查看!!!
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
时间: 2024-10-10 17:42:28