欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Shell腳本實現(xiàn)的單機流量統(tǒng)計功能

 更新時間:2014年11月28日 15:50:29   投稿:junjie  
這篇文章主要介紹了Shell腳本實現(xiàn)的單機流量統(tǒng)計功能,本文給出實現(xiàn)代碼和使用方法,及運行結果,需要的朋友可以參考下

在網(wǎng)上看到這個單機流量的腳本,挺不錯的。

復制代碼 代碼如下:

#!/bin/sh
usage(){
echo “Usage: $0 [-i INTERFACE] [-s INTERVAL] [-c COUNT]”
echo
echo “-i INTERFACE”
echo “    The interface to monitor, default is eth0.”
echo “-s INTERVAL”
echo “    The time to wait in seconds between measurements, default is 3 seconds.”
echo “-c COUNT”
echo “    The number of times to measure, default is 10 times.”
exit 3
}
readargs(){
while [ "$#" -gt 0 ] ; do
  case “$1″ in
   -i)
    if [ "$2" ] ; then
     interface=”$2″
     shift ; shift
    else
     echo “Missing a value for $1.”
     echo
     shift
     usage
    fi
   ;;
   -s)
    if [ "$2" ] ; then
     sleep=”$2″
     shift ; shift
    else
     echo “Missing a value for $1.”
     echo
     shift
     usage
    fi
   ;;
   -c)
    if [ "$2" ] ; then
     counter=”$2″
     shift ; shift
    else
     echo “Missing a value for $1.”
     echo
     shift
     usage
    fi
   ;;
   *)
    echo “Unknown option $1.”
    echo
    shift
    usage
   ;;
  esac
done
}
checkargs(){
if [ ! "$interface" ] ; then
  interface=”eth0″
fi
if [ ! "$sleep" ] ; then
  sleep=”3″
fi
if [ ! "$counter" ] ; then
  counter=”10″
fi
}
printrxbytes(){
/sbin/ifconfig “$interface” | grep “RX bytes” | cut -d: -f2 | awk ‘{ print $1 }'
}
printtxbytes(){
/sbin/ifconfig “$interface” | grep “TX bytes” | cut -d: -f3 | awk ‘{ print $1 }'
}
bytestohumanreadable(){
multiplier=”0″
number=”$1″
while [ "$number" -ge 1024 ] ; do
  multiplier=$(($multiplier+1))
  number=$(($number/1024))
done
case “$multiplier” in
  1)
   echo “$number Kb”
  ;;
  2)
   echo “$number Mb”
  ;;
  3)
   echo “$number Gb”
  ;;
  4)
   echo “$number Tb”
  ;;
  *)
   echo “$1 b”
  ;;
esac
}
 
printresults(){
while [ "$counter" -ge 0 ] ; do
  counter=$(($counter – 1))
  if [ "$rxbytes" ] ; then
   oldrxbytes=”$rxbytes”
   oldtxbytes=”$txbytes”
  fi
  rxbytes=$(printrxbytes)
  txbytes=$(printtxbytes)
  if [ "$oldrxbytes" -a "$rxbytes" -a "$oldtxbytes" -a "$txbytes" ] ; then
   echo “$(/bin/date +%Y%m%d-%H%M%S) RXbytes = $(bytestohumanreadable $(($rxbytes – $oldrxbytes))) TXbytes = $(bytestohumanreadable $(($txbytes – $oldtxbytes)))”
  else
   echo “Monitoring $interface every $sleep seconds. (RXbyte total = $(bytestohumanreadable $rxbytes) TXbytes total = $(bytestohumanreadable $txbytes))”
  fi
  sleep “$sleep”
done
}
readargs “$@”
checkargs
printresults

測試如下:

每三秒的流量,總輸出999行,可以輸出到文件里,其中:前面為時間,Rx Packets 是接收數(shù)據(jù)包,即下載,Tx Packets 是發(fā)送數(shù)據(jù)包,即上傳.

復制代碼 代碼如下:

[root@host]#sh t.sh -c 999  Monitoring eth0 every 3 seconds. (RXbyte total = 6 Tb TXbytes total = 5 Tb)
20101105-201539 RXbytes = 126 Kb TXbytes = 658 Kb
20101105-201542 RXbytes = 87 Kb TXbytes = 487 Kb
20101105-201545 RXbytes = 159 Kb TXbytes = 668 Kb
20101105-201548 RXbytes = 107 Kb TXbytes = 725 Kb
20101105-201551 RXbytes = 110 Kb TXbytes = 704 Kb
20101105-201554 RXbytes = 90 Kb TXbytes = 726 Kb
20101105-201558 RXbytes = 100 Kb TXbytes = 850 Kb
20101105-201601 RXbytes = 102 Kb TXbytes = 703 Kb
20101105-201604 RXbytes = 168 Kb TXbytes = 693 Kb
20101105-201607 RXbytes = 105 Kb TXbytes = 730 Kb
20101105-201610 RXbytes = 133 Kb TXbytes = 711 Kb
20101105-201613 RXbytes = 431 Kb TXbytes = 703 Kb
20101105-201616 RXbytes = 84 Kb TXbytes = 527 Kb
20101105-201619 RXbytes = 239 Kb TXbytes = 825 Kb
20101105-201622 RXbytes = 117 Kb TXbytes = 801 Kb
20101105-201625 RXbytes = 99 Kb TXbytes = 913 Kb
20101105-201628 RXbytes = 89 Kb TXbytes = 322 Kb
20101105-201631 RXbytes = 63 Kb TXbytes = 73 Kb
20101105-201634 RXbytes = 84 Kb TXbytes = 191 Kb
20101105-201637 RXbytes = 174 Kb TXbytes = 481 Kb
20101105-201640 RXbytes = 120 Kb TXbytes = 383 Kb
20101105-201643 RXbytes = 94 Kb TXbytes = 496 Kb
20101105-201646 RXbytes = 108 Kb TXbytes = 340 Kb
20101105-201649 RXbytes = 91 Kb TXbytes = 639 Kb
20101105-201652 RXbytes = 106 Kb TXbytes = 629 Kb
20101105-201655 RXbytes = 125 Kb TXbytes = 496 Kb
20101105-201658 RXbytes = 90 Kb TXbytes = 537 Kb
20101105-201701 RXbytes = 114 Kb TXbytes = 641 Kb

相關文章

  • Csh的基本語法介紹

    Csh的基本語法介紹

    這篇文章主要介紹了Csh的基本語法,講解了變量、數(shù)組、命令替換、命令行參數(shù)、IO重定向和管道等內(nèi)容,需要的朋友可以參考下
    2014-11-11
  • 根據(jù)公司需求寫的一個linux 巡檢小腳本

    根據(jù)公司需求寫的一個linux 巡檢小腳本

    這篇文章主要介紹了根據(jù)公司需求寫的一個linux 巡檢小腳本,可以用來檢查服務器的一些運行狀況,需要的朋友可以參考下
    2017-04-04
  • shell腳本編程之數(shù)組

    shell腳本編程之數(shù)組

    數(shù)組就是相同數(shù)據(jù)類型的元素按一定順序排列的集合,就是把有限個類型相同的變量用一個名字命名,然后用編號區(qū)分他們的變量的集合,這個名字稱為數(shù)組名,編號稱為下標
    2016-01-01
  • Shell腳本實現(xiàn)查殺子進程、僵尸進程

    Shell腳本實現(xiàn)查殺子進程、僵尸進程

    這篇文章主要介紹了Shell腳本實現(xiàn)查殺子進程、僵尸進程,本文直接給出實現(xiàn)代碼,實現(xiàn)遞歸找到導致進程僵死的最底層子進程并殺除,需要的朋友可以參考下
    2015-01-01
  • Shell退出狀態(tài)碼及其應用詳解

    Shell退出狀態(tài)碼及其應用詳解

    這篇文章主要介紹了Shell退出狀態(tài)碼及其應用,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • Linux中rpm命令用法詳解

    Linux中rpm命令用法詳解

    rpm命令是用于在基于RPM包管理系統(tǒng)的Linux發(fā)行版中安裝、查詢、升級和刪除軟件包的命令行工具,本文講給大家詳細的介紹一下Linux?rpm命令的使用方法,感興趣的同學跟著小編一起來看看吧
    2023-08-08
  • Shell腳本實現(xiàn)監(jiān)控MySQL主從同步

    Shell腳本實現(xiàn)監(jiān)控MySQL主從同步

    這篇文章主要介紹了Shell腳本實現(xiàn)監(jiān)控MySQL主從同步,此腳本應該能適應各種各樣不同的內(nèi)外網(wǎng)環(huán)境,并同時監(jiān)控MySQL運行狀態(tài),需要的朋友可以參考下
    2015-01-01
  • shell腳本實現(xiàn)ssh-copy-id批量自動發(fā)送公鑰到遠程主機

    shell腳本實現(xiàn)ssh-copy-id批量自動發(fā)送公鑰到遠程主機

    這篇文章主要介紹了shell腳本實現(xiàn)ssh-copy-id批量自動發(fā)送公鑰到遠程主機的方式,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-11-11
  • 十三個寫好shell腳本的技巧分享

    十三個寫好shell腳本的技巧分享

    這篇文章主要給大家介紹了關于寫好shell腳本的13個技巧的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-06-06
  • ping發(fā)現(xiàn)掉包報警的shell代碼

    ping發(fā)現(xiàn)掉包報警的shell代碼

    一般用來判斷服務器是否穩(wěn)定,加入crontab中讓其10分鐘跑一次,需要的朋友可以參考下
    2013-01-01

最新評論