Eureka
1
#!/bin/bash
cd /data/logs
ls -l *`date +%Y%m%d`_access.log* | awk '{print $NF}' > 1.txt
for i in `cat 1.txt`;do cat $i | awk '{print $NF}' | grep -v "-" | awk '{sum += $1}END{print sum/1024/1024}' | awk '{printf ("%.2fn", $1)}';done > 2.txt
#合并输出两列
paste -d "t" 1.txt 2.txt > 3.txt
#按第二列大小排序
cat 3.txt | sort -k 2 -nr > 4.txt
sed 's/$/&MB/g' 4.txt
echo -e "n"
echo "请耐心等待10秒,正在计算这10秒内的日志变化。。。。。"
echo "########################################################日志增长率######################################################"
echo -e "n"
sleep 10
ls -l *`date +%Y%m%d`_access.log* | awk '{print $NF}' > 1.txt
for i in `cat 1.txt`;do cat $i | awk '{print $NF}' | grep -v "-" | awk '{sum += $1}END{print sum/1024/1024}' | awk '{printf ("%.2fn", $1)}';done > 2.txt
#合并输出两列
paste -d "t" 1.txt 2.txt > 5.txt
#按第二列大小排序
cat 5.txt | sort -k 2 -nr > 6.txt
cat 3.txt | awk '{print $NF}' > 7.txt
cat 5.txt | awk '{print $NF}' > 8.txt
paste -d "t" 7.txt 8.txt > 10.txt
cat 10.txt | awk '{print $2-$1}' > 11.txt
paste -d "t" 1.txt 7.txt 8.txt 11.txt | grep -v "0.00" > 12.txt
cat 12.txt | sort -k 4 -nr |awk 'BEGIN {print "日志名称 首次访问日志大小(M) n秒后日志大小(M) 日志增长大小(M) 日志增长率(%)"}{printf"%-50s%-20s%-20s%-20s%.2fn",$1,$2,$3,$4,$4/$2*100}'