具体场景:
日志格式: service_yyyymmdd_*.log.一般会根据时间进行切割.要么根据固定每小时,要么固定大小.一天也会产生多个日志文件.累积下来就挺多的.现在想把前x天的日志压缩打包起来.后续你可以根据天数删除或者备份都会方便许多.
#!/bin/bash
echo "Please wait..."
# 当天的时间
curDay=$(date "+%Y%m%d")
# 日志位置
baseFolder="/server/gamesrv1/exec"
mkdir ${baseFolder}/logbackup #创建文件夹,把要压缩的文件放进去
# 设置前x天
days=1
cd ${baseFolder}
# 前x天的时间
bday=`date -d "${day} days ago" +%Y%m%d`
echo "${bday}"
n=`find ${baseFolder} -name "game_${bday}*.log" | wc -l`
echo "待处理的日志文件数量: ${n}"
if [ ${n} -gt 0 ];then
echo "压缩日志文件..."
tar -zcvf ${baseFolder}/logbackup/game_${bday}.tar.gz `find ./ -name "game_${bday}*.log"`
fi
for log in $(find ./ -name "game_${bday}*.log")
do
rm -f ${log}
done
定时任务:
crontab -e
0 4 * * * /bin/sh /server/gamesrv1/exec/logs.sh
版权声明:本文为qq_16998379原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。