您的位置:首页 > 运维架构 > Shell

利用shell 提取 LINUX系统监控相关信息 -2

2014-04-25 16:54 435 查看
6、物理硬盘使用率

harddisk-usage-rate.sh

#!/bin/bash

df -k|sed '/%/!{N;s/\n / /}'|awk '{print $2}' >kblocks.txt

KBLOCKNUM=`cat kblocks.txt|wc -l`

if [ "$KBLOCKNUM" -ge 2 ]

then

for ((i=2;i<=$KBLOCKNUM;i=i+1))

do

#echo "$i"

kblocks=`awk '{if(NR=='"$i"') print $0 }' ./kblocks.txt`

#echo "kblocks=$kblocks"

totalkblocks=$[$totalkblocks+$kblocks]

#echo "totalkblocks=$totalkblocks"

done

#echo "totalkblocks=$totalkblocks"

fi

df -k|sed '/%/!{N;s/\n / /}'|awk '{print $3}' >used.txt

USEDNUM=`cat used.txt|wc -l`

if [ "$USEDNUM" -ge 2 ]

then

for((i=2;i<=$USEDNUM;i=i+1))

do

used=`awk '{if(NR=='"$i"') print $0 }' ./used.txt`

totalused=$[$totalused+$used]

done

#echo "totalused=$totalused"

fi

Harddisk_Usage_Rate=`expr "scale=5; $totalused/$totalkblocks*100" |bc`

echo "HARDDISK-USAGE-RATE=`expr "sclae=3;$Harddisk_Usage_Rate/1"|bc `%"

rm -f kblocks.txt

rm -f used.txt

7、分区使用率

harddisk-filesystem-capacity.sh

#!/bin/bash

df -k|sed '/%/!{N;s/\n / /}'|awk '{print $1,$2}' >harddiskcapacity.txt

HARDDISKFILESYSTEMNUM=`cat harddiskcapacity.txt|wc -l`

if [ "$HARDDISKFILESYSTEMNUM" -ge 2 ]

then

for ((i=2;i<=$HARDDISKFILESYSTEMNUM;i=i+1))

do

filesystemname=`awk '{if(NR=='"$i"') print $1}' ./harddiskcapacity.txt`

filesystemcapacity=`awk '{if(NR=='"$i"') print $2}' ./harddiskcapacity.txt`

echo -n "$filesystemname"

echo -n "-capacity="

echo -n "$filesystemcapacity"

echo -n "k"

echo -n "="

echo -n `expr "scale=1;$filesystemcapacity/1024"|bc -l`

echo -n "MB"

echo -n "="

echo -n `expr "scale=1;$filesystemcapacity/1024/1024"|bc -l`

echo "GB"

done

fi

rm -f harddiskcapacity.txt

8、内存使用率

mem-usage-rate.sh

#!/bin/bash

MEMTOTAL=`cat /proc/meminfo|sed -n '1p'|awk '{print $2}'`

#echo "MEMTOTAL=$MEMTOTAL"

MEMFREE=`cat /proc/meminfo|sed -n '2p'|awk '{print $2}'`

#echo "MEMFREE=$MEMFREE"

MEMFREERATE=`expr "scale=3;$MEMFREE/$MEMTOTAL"|bc -l`

#echo $MEMFREERATE

MEMUSAGERATE=`expr 1-$MEMFREERATE|bc -l`

#echo "MemUsageRate=$MEMUSAGERATE"

echo "MemUsageRate=`expr "scale=1; 100-$MEMFREERATE*100/1"|bc -l`%"

9、内存总量

mem-total.sh

#!/bin/bash

sed -n '1p' /proc/meminfo|awk '{print $0}'

10、PPP地址

ppp-ip.sh

#!/bin/bash

PPPSTRING=`/sbin/ifconfig|grep "ppp. Link encap:Point-to-Point Protocol"`

if [ -n "$PPPSTRING" ]

then

PPPNUM=`/sbin/ifconfig|grep "ppp. Link encap:Point-to-Point Protocol"|wc -l`

if [ "$PPPNUM" -ge 1 ]

then

let pppi=$PPPNUM-1

for ((i=0;i<=$pppi;i++))

do

echo -n "ppp$i"

echo -n "-ipaddress="

echo `ifconfig ppp$i|grep "inet addr"|cut -f 2 -d ":"|cut -f 1 -d " "`

done

fi

fi

附录:可能可以参考的链接http://www.oschina.net/question/920274_152746
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: