
#!/bin/bash

#定义日志文件名称
LOG_FILE='hanjy_access.log-2022-05-18.gz'

#后续变量替换引用分隔符
Fs=-

#日志保存路径
OLD_FILE=/www/wwwlogs/backup

#清空并生成临时文件
>./tmp_file.txt

#取出日志中日期并保存到临时文件中
zcat ${OLD_FILE}/${LOG_FILE}|awk -F"[[ :]+" '{date[$4]++} END {for (i in date){print i}}'>./tmp_file.txt

#循环读取临时文件中的日期，使用awk 匹配并写入到指定备份路径
while read line
   do
        if [ ! -d ${OLD_FILE}/${LOG_FILE%%${Fs}*} ]; then
                mkdir -p  ${OLD_FILE}/${LOG_FILE%%${Fs}*}
        fi
        zcat ${OLD_FILE}/${LOG_FILE}|awk -F"[[ :]+" "/${line////\/}/{print}"  >${OLD_FILE}/${LOG_FILE%%${Fs}*}/${LOG_FILE%%${Fs}*}-${line//\//-}
done<./tmp_file.txt
#循环结束

#删除临时文件
rm -rf ./tmp_file.txt
