编写linux服务器硬件监控脚本,shell之服务器监控脚本

#!/bin/bash

#network

#Mike.Xu

while : ; do

time='date +%m"-"%d" "%k":"%M'

day='date +%m"-"%d'

rx_before='ifconfig eth0|sed -n "8"p|awk '{print $2}'|cut -c7-'

tx_before='ifconfig eth0|sed -n "8"p|awk '{print $6}'|cut -c7-'

sleep 2

rx_after='ifconfig eth0|sed -n "8"p|awk '{print $2}'|cut -c7-'

tx_after='ifconfig eth0|sed -n "8"p|awk '{print $6}'|cut -c7-'

rx_result=$[(rx_after-rx_before)/256]

tx_result=$[(tx_after-tx_before)/256]

echo "$time Now_In_Speed: "$rx_result"kbps Now_OUt_Speed: "$tx_result"kbps"

sleep 2

done

2. 新看到的一则SHELL实现同样的功能

#!/bin/bash

function usage

{

echo "use ./test_net.sh ethX time"

echo "$1 is you network interface "

echo "$2 is the last time!"

echo "for example: ./test_net.sh eth0 2"

exit 100

}

if [ $# -lt 2 -o $# -gt 2 ];then

usage

fi

eth=$1

time=$2

old_inbw=`cat /proc/net/dev | grep $eth | awk -F'[: ]+' '{print $3}'`

old_outbw=`cat /proc/net/dev | grep $eth | awk -F'[: ]+' '{print $11}'`

while true

do

sleep $time

new_inbw=`cat /proc/net/dev | grep $eth | awk -F'[: ]+' '{print $3}'`

new_outbw=`cat /proc/net/dev | grep $eth | awk -F'[: ]+' '{print $11}'`

inbw=`expr $((($new_inbw-$old_inbw)/$time))`

outbw=`expr $((($new_outbw-$old_outbw)/$time))`

echo "$eth: IN:$inbw bytes  OUT:$outbw bytes"

old_inbw=${new_inbw}

old_outbw=${new_outbw}

done

exit 0

运行效果:

[root@bogon shell]# ./test_net.sh  eth0 2

eth0: IN:3097 bytes  OUT:50374 bytes

eth0: IN:3158 bytes  OUT:44202 bytes

eth0: IN:2587 bytes  OUT:58932 bytes

eth0: IN:2104 bytes  OUT:51543 bytes

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值