基於dstat監控網卡流量,服務器狀態簡單腳本


前幾天領導給了一台服務讓我每天監控以下服務器得流量情況,開始幾天每天上去用ifstat命令截圖。后來了解到dstat命令
dstat着個命令用法靈活,功能強大,先來簡單得介紹一下

dstat介紹


  • dstat結合了vmstat,iostat,ifstat,netstat以及更多監控工具的信息,跟ifstat一樣,實時顯示監控狀態
  • 基於python編寫,方便擴展各種定制功能
  • 分組統計設備信息
  • 可以定制時間和輸出間隔,比如dstat -nf 2 5 表示輸出網絡設備 2秒一次 一共輸出5次
  • 輸出信息單位按最大整數計算,用顏色顯示不同單位
  • 可以輸出csv文件。dstat --output /tmp/filename.csv 2 5 這條命令是將dstat輸出到/tmp/文件名.csv這個文件中 2秒一次 出書5次
    這里要注意一下:dstat時間控制參數一定要在文件輸出后面,我就是因為這個地方改了好多次,先把時間參數加到前面了,導致輸出文件不成功

dstat安裝


yum -y install dstat

dstat參數介紹


dstat命令什么參數也不加的話默認輸出:

從左往右依次顯示的是:cpu狀態,磁盤讀寫狀態,網絡狀態統計,分頁狀態統計,系統狀態統計

man dstat可以查看dstat的參數詳情

  • -c:顯示cpu當前狀態
  • -C:加cpu號分別顯示cpu
  • -l:顯示負載統計量
  • -m:顯示內存狀態包括used,buffer,cache,free
  • -n:顯示網卡總狀態
  • -nf:分頁顯示網卡裝填
  • -r:顯示i/o統計
  • -s:顯示交換分區的狀態
  • -t:顯示時間
  • -fs:顯示文件系統統計數據,包括文件總數和innodes值
  • -nocolor:輸出不現實顏色
  • -socket:統計網絡數據
  • -tcp:顯示tcp統計
  • -udp:顯示udp統計
    還有很多功能沒有列出來,有需要的看man dstat 詳情
    貼出我今天寫的一個用來監控每天固定時間的網絡狀態並生成csv文件發送到我自己的郵箱的小腳本:
    #!/bin/bash
    tname=`date +%Y-%-m-%-d`
    echo  ${tname}
    dstat -tnf   --output /tmp/eths_${tname}.csv 1 40 #顯示時間的分頁網卡狀態,因為我的服務器有5塊網卡,自動生成一個eths_(每天日期).csv的文件
    echo "今天的備份" | mail -a /tmp/eths_${tname}.csv -s "今天的備份文件" xxxx@qq.com #發送文件到我得郵箱

最后把這個腳本寫進周期計划任務就行了,每天十點發送郵件給我:
crontab -e
0 10 * * * /usr/src/腳本名字.sh >/dev/null 2>&1
就醬!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM