如何使用shell脚本压缩并且转存tomcat的日志

在之前我发了一个很蠢的方法,使用python脚本写的,写了很长,后来发觉是件蠢事,用shell脚本几行字就写出来了,下面给大家说下我的脚本:

#/bin/sh

echo " " > /usr/local/apps/server_8580/logs/catalina.out
echo " " > /usr/local/apps/server_8581/logs/catalina.out
echo " " > /usr/local/apps/server_80/logs/catalina.out

curDate=$(date "+%Y-%m-%d")

cd /usr/local/apps/server_8580/logs/
sleep 2
tar -czvf $curDate-8580.tar.gz ./*
sleep 5
mv $curDate-8580.tar.gz /bak/logs_bak/
sleep 10
ls  | grep -v catalina.out |xargs rm -rf;
sleep 10


cd /usr/local/apps/server_8581/logs/
sleep 2
tar -czvf $curDate-8581.tar.gz ./*
sleep 5
mv $curDate-8581.tar.gz /bak/logs_bak/
sleep 10
ls  | grep -v catalina.out |xargs rm -rf;
sleep 10


cd /usr/local/apps/server_80/logs/
sleep 2
tar -czvf $curDate-80.tar.gz ./*
sleep 5
mv $curDate-80.tar.gz /bak/logs_bak/
sleep 10
ls  | grep -v catalina.out |xargs rm -rf;

大家只需要弄懂第一段就可以了,因为我这里又三个应用,所以后面都是类似的:

echo " " > /usr/local/apps/server_8580/logs/catalina.out 这句的意思是吧catalina.out这个文件内容清空(因为catalina.out这个文件是真的大),但是保留这个文件,因为怕这个调试文件删除掉的话,会影响程序,本人也不是程序员所以对这个不精通哈

curDate=$(date "+%Y-%m-%d")获取今天的日期

后面几句cd什么的都是基本操作啦,tar -czvf $curDate-8580.tar.gz localhost* catalina* manage* host*,这句话我看了下tomcat的logs目录底下大概都是以localhost开头的,catalina开头的,manage开头的,host开头的日志文件,这里根据实际情况,这句话的意思就是把这底下的文件都压缩包,这个压缩包名字是今天的日期+-8580(这个大家自己根据情况写,8580因为我的应用目录名字含有8580,所以这样好区分)

mv $curDate-8580.tar.gz /bak/logs_bak/ 把这个备份的压缩包剪切到备份目录/bak/logs_bak目录下,大家根据实际情况建这个备份目录

ls  | grep -v catalina.out |xargs rm -rf 重点,排除掉catalina.out这个文件,也就是不删除catalina.out这个文件,然后删除logs目录底下所有文件,xargs的意思是把前面ls  | grep -v catalina.out得到的内容存放在变量里面,也就是要删除的文件列表

最后就是把这个脚本加入到crontab定时计划中

每个月10号的晚上九点执行这个脚本

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值