萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> 編程語言綜合 >> 編寫Bash Shell通過gnuplot繪制系統性能數據圖的方法

編寫Bash Shell通過gnuplot繪制系統性能數據圖的方法

   這篇文章主要介紹了編寫Bash Shell通過gnuplot繪制系統性能數據圖的方法,做到可視化數據收集,需要的朋友可以參考下

  使用步驟:

  1.設置一個定時任何 執行getperf.sh,采集性能數據

  2.將采集到性能數據文件,如:192.168.1.1.tar.gz 解壓

  3.將性能分析的腳步performance_analyse.sh 放到解壓後的目錄中

  4.安裝gnuplot程序(這裡下載)

  5.將字體文件夾,拷貝到/usr/share/fonts/目錄

  6.直接運行 bash performance_analyse.sh

  getperf.sh腳本內容如下:

  ?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 ################################################# #說明: # 定義時間TIMES參數,表示采集的次數, # 采集時間 = TIMES * INTERVAL #eg: # TIMES=180 , INTERVAL=10 采集時間就是半小時 # ################################################# #!/bin/bash TIMES=3600 INTERVAL=2 PWD=`pwd` TIME=`date "+%F %H:%M:%S"` TAR=`whereis tar|awk -F ":" '{print $2}'|awk '{print $1}'` SAR=`whereis sar|awk -F ":" '{print $2}'|awk '{print $1}'` IOSTAT=`whereis iostat|awk -F ":" '{print $2}'|awk '{print $1}'` # Check Moniter Tool SysInfo(){ echo "sysip : $SYSIP"|tee $PWD/$SYSIP/sysinfo echo "starttime : $TIME" |tee -a $PWD/$SYSIP/sysinfo /sbin/ifconfig >>$PWD/$SYSIP/sysinfo echo "===================================" >>$PWD/$SYSIP/sysinfo /usr/sbin/dmidecode >>$PWD/$SYSIP/sysinfo echo "===================================" >>$PWD/$SYSIP/sysinfo /bin/cat /proc/cpuinfo >> $PWD/$SYSIP/sysinfo echo "===================================" >>$PWD/$SYSIP/sysinfo /sbin/fdisk -l >> $PWD/$SYSIP/sysinfo echo "===================================" >>$PWD/$SYSIP/sysinfo /bin/df -Th >>$PWD/$SYSIP/sysinfo echo "===================================" >>$PWD/$SYSIP/sysinfo /usr/bin/free -m >> $PWD/$SYSIP/sysinfo echo "===================================" >>$PWD/$SYSIP/sysinfo echo "" } CheckEnv(){ PUB_IP=`/sbin/ifconfig |grep "inet addr" | awk -F: '{print $2}'| awk '{print $1}'|grep -v "172.|10.|127.|192."|sed -n 1p` PRI_IP=`/sbin/ifconfig |grep "inet addr" | awk -F: '{print $2}'| awk '{print $1}'|grep "10.|127.|192."|sed -n 1p` if [ "snda$PUB_IP" == "snda" ];then SYSIP=$PRI_IP else SYSIP=$PUB_IP fi if [ -d $PWD/$SYSIP ];then rm -rf $PWD/$SYSIP fi mkdir -p $PWD/$SYSIP if ! grep iostat /usr/bin/iostat ;then yum -y install sysstat fi } GetPerf(){ CPUUSAGE="$PWD/$SYSIP/cpuusage.log" MEMUSAGE="$PWD/$SYSIP/memusage.log" DISKUSAGE="$PWD/$SYSIP/diskusage.log" NETWORK="$PWD/$SYSIP/network.log" $SAR -P ALL $INTERVAL $TIMES>> $CPUUSAGE & $IOSTAT -dkx $INTERVAL $TIMES>> $DISKUSAGE & $SAR -n DEV $INTERVAL $TIMES>> $NETWORK & $SAR -r $INTERVAL $TIMES>> $MEMUSAGE & for ((i=0;i<$TIMES;i++)) do sleep $INTERVAL done } CheckEnv SysInfo GetPerf #在同一台機器上第二次采集數據時,會刪除之前采集的數據,重新采集 #采集完成之後,會生產一個以 IP.tar.gz的壓縮包。將這個壓縮包,放到 #分析腳本performance_analyse.sh 的同級目錄。 if [ -d $PWD/$SYSIP ];then cd $PWD rm -f $SYSIP.tar.gz tar zcvf $SYSIP.tar.gz $SYSIP fi

  performance_analyse.sh腳本內容如下:

  ?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144
copyright © 萬盛學電腦網 all rights reserved