多个tomcat的log日子整理shell脚本

  • 写了个简单的tomcat的整理log日子,满足简单需求
  • 时间可以自己改,循环查找tomcat(tomcat路径写进path数组中,就可以执行多个tomcat日志整理)
  • 写的不好之处,敬请谅解。
#!/bin/sh
#把3天以前的log,txt文件移到back_log目录中
#把5天以前的日志放进一个log_tar_js并且打包压缩
#把7天以前的tar包移除

#循环查找执行这个命令
#注意跨年会影响脚本
#每天只能执行一次
path1=/data/tomcat/php-tomcat/logs
path2=/data/tomcat/tomcat-test/logs
path=($path1 $path2)
for m in ${path[*]};do
date=`date +%Y-%m-%d -d "1 days ago" `

cd $m
#备份前一天的catalina.out
cp catalina.out catalina.out.$date.log
echo > catalina.out

#移动3天之前的log,txt文件到back_log中
mv_date=`date +%Y-%m-%d -d "3 days ago" `
for n in `ls *.log *.txt -1`;do
m=`echo $n | awk -F. '{print $(NF-1)}'`
m=`echo ${m:0-10}`
if [[ $m < $mv_date || $m = $mv_date ]];then
echo "file $n 移入back_log"
mv -f $n back_log
fi
done

#创建文件夹。并且把5天之前的日志放进去,打包压缩
cd ./back_log
tar_date=`date +%Y-%m-%d -d "5 days ago"`
log_dir=log.$tar_date

mkdir $log_dir
for n in `ls *.log *.txt -1` ;do
m=`echo $n | awk -F. '{print $(NF-1)}'`
m=`echo ${m:0-10}`
if [[ $m < $tar_date || $m = $tar_date ]];then
mv -f $n $log_dir
fi
done
echo "完成移动"

tar -czvf $log_dir.tar.gz $log_dir
rm -rf $log_dir
echo "完成打包"

#移除7天之前的压缩包
rm_tar=`date +%Y-%m-%d -d "7 days ago"`
for n in `ls *.tar.gz -1`;do
m=`echo $n | awk -F. '{print $2}'`
m=`echo ${m:0-10}`
if [[ $m < $rm_tar ]];then
rm -f $n
echo "移除$n"
fi
done
echo '已经移除过期包'

done




















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值