tar解压压缩包内的指定文件

最近有老的机房下线了,为了提高日志备份的速度,我就把每个应用下的日志目录整体打包压缩了。
但是这样又带来了一个新的问题,那就是经常会有人来找我提取日志查看,我地根据每个人的需求把日志解压出来。
因为日志存在一个存储上面,直接全部解压的话实际上会有很大的网络流量(log.tgz)NAS–>unzip server –>NAS(log)。
所以就写了个脚本只把每个应用下的指定日志解压出来
[bash]
#!/bin/bash
#############################
#
#Author: GNUer
#############################
LOGDIR=/mnt/abcvm/abcvm/app
APP=$1
LOGNAME="$2"
APPLOG=$LOGDIR/$APP/
usage(){
echo -e "usage:\n"
echo -e "\t$0 APP LOGNAME"
exit 0
}
OLDDIR=$(pwd)
echo "unzip $APP $LOGNAME*"
getlogname(){
local app
local logname
app=$1
logname=$2
[ ! $app ] && exit 2
for tgz in $(find $LOGDIR/$APP -name "*.tgz")
do

dir=${tgz%/*.tgz}
cd $dir
echo "unzip $tgz –> $dir"
tar –wildcards -zxf $tgz "*$logname*"
done
cd $OLDDIR

}
[ $# -ne 2 ] && usage
getlogname $APP $LOGNAME

[/bash]

此条目发表在Script, System分类目录。将固定链接加入收藏夹。

发表评论