前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >检测含有关键字的文件的总大小

检测含有关键字的文件的总大小

作者头像
明哥的运维笔记
发布2019-01-30 10:02:34
4760
发布2019-01-30 10:02:34
举报
文章被收录于专栏:运维笔记
代码语言:javascript
复制
#!/bin/bash 
#author: QingFeng
#qq: 530035210
#blog: https://my.oschina.net/pwd/blog 
#检测含有关键字的文件的总大小

logdir=/data/log/clear           #日志路径
log=$logdir/clear.log            #日志文件 
is_font=1                #终端是否打印日志: 1打印 0不打印 
is_log=0                 #是否记录日志: 1记录 0不记录
 
datef(){
date "+%Y-%m-%d %H:%M:%S"
}

print_log(){
if [[ $is_log -eq 1  ]];then
[[ -d $logdir ]] || mkdir -p $logdir
echo "[ $(datef) ] $1" >> $log
fi
if [[ $is_font -eq 1  ]];then
echo "[ $(datef) ] $1"
fi
}

check_dir(){
if [[ ! -d $basedir  ]];then
print_log "[ $(datef) ] 需要检测的目录不存在: $basedir"
exit
fi
}
 

static_sizes(){
size=$(du -sh $basedir |awk '{print $1}')
print_log  "现在该目录[$basedir]的大小为: $size"
} 

jisuan_sum(){
if [[ $file_key != ""   ]];then
ls $basedir/$file_key* |head -n 5 > /dev/null
if [[ $? -ne 0   ]];then
print_log "现在该目录[$basedir]不存在关键字为$file_key的文件."
exit
fi
du -k $basedir/$file_key* |awk '{print $1}' > /tmp/sum.txt
print_log "开始计算...请稍等"
while read line 
do
next=$( echo $line|sed "s/M//g")

sum=`expr $sum + $next`

done < /tmp/sum.txt
rm -f /tmp/sum.txt
sum=$(expr $sum / 1000)
if [[ $sum -gt 1000  ]];then
sumG=$(expr $sum / 1000)
else
sumG=0
fi
print_log "[$basedir]目录下含有[ $file_key ]关键字的文件大小的总和: $sum M || $sumG G" 
fi
}

if [[  "$1" = ""  ]];then

echo -e "
 检测含有关键字的文件的总大小
 用法示例"
echo -e  "
clean.class.sh:
    ./checksum.class.sh  要检测文件的所在目录  要检测文件的关键词
exp:
    ./checksum.class.sh /data/backup/bdb-log   log
"
exit
fi 

if [[ $1 != ""  ]];then
basedir=$1
check_dir
if [[ $1 = "/"  ]];then
print_log  "第一个参数[检测目录],不能选择根目录"
exit
fi 

else
print_log  "第一个参数[检测目录],不能为空"
exit
fi 

if [[ $2 != ""  ]];then
file_key=$2
fi
static_sizes
jisuan_sum

示例结果如下:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-01-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档