1、说明
通用性日志压缩脚本使用:需要传4个参数 第一个是处理那个目录下面的日志 例如:/app/logs 、第二个是处理什么样的日志格式(包含什么关键字) 例如:log 、第三个是处理几天之前的日志、第四个是处理压缩文件处理删除前几天的
[root@gtcq-gt-resource2-01 app]# more /usr/local/shell_script/logs_compression.sh
#!/bin/bash
#
#####################################
#@brief 功能:1、日志压缩 2、日志备份删除
#@author jing
#@version 1.0
#@date 2021/01/13
#@log no
#####################################
#shell Env
source /etc/profile
#cd /app/logs/app
echo $#
if [ $# -lt 3 ]
then
echo "请输入3-4个参数:第一个是处理的目录;第二个是日志后缀名称;第三个是多少天之前的日志压缩;第四个是压缩日志保留多少多少天如果不传就不处理"
exit 1
fi
#日志目录
echo $1
logs_dir=$1
#日志后缀名称
echo $2
type_log=$2
#日志保留时间
echo $3
mtime=$3
cd $logs_dir
logs_ar=( $(find $logs_dir -name "*.${type_log}*" -a ! -name '*.gz' -type f -mtime +${
mtime}) )
for (( i = 0; i < ${#logs_ar[@]}; ++i ))
do
ls -l ${logs_ar[i]}
gzip ${logs_ar[i]}
done
tar_mtime=$(($4+0))
echo $tar_mtime
if [ $tar_mtime -eq 0 ]
then
echo "没有输入第4个参数,脚本不处理.gz文件删除的工作"
exit 1
fi
find $logs_dir -name "*.${type_log}*.gz" -type f -mtime +${tar_mtime} -exec rm -rf {
} \;
[root@gtcq-gt-resource2-01 app]#