iperf3 一键自动化测试脚本 2015-0910更新

[email protected]:~$ cat /home/haha/iperf3/iperf09100948.sh
#!/bin/bash
# modify 2015.09.10 
# up ,down Bandwidth unit is Kbits/sec
# $1 for ip address
# $2 .sh run time
# $3 iperf3 -t time
# add ping_lost 
# retry fun
# kill iperf sleep 5
# fix nan error 
# add Supervision iperf3 
# add judgement root
# fix File_Modify == 
# add Internet_IP 
# remove sleep,300s
# export LD_LIBRARY_PATH
# cat ./files/${time1}_iperf.csv
export LD_LIBRARY_PATH=/usr/local/lib/
#### judgement root ######################################################################
root_id=`id -u`
if [ $root_id -ne 0 ] ; then
{
   clear
   echo -e "\033[40;37mWarning: you are not root user ! \n\n[Please use Command line ]$ sudo su \n\n \033[0m"
   exit 10
}
fi
####### Get localhost IP & Initialization for iperf.csv############################3
clear
time4=`date +‘%s‘`
time5=$[time4+$2] 
mkdir -p files
time1=`date "+%F-%H-%M"`
iperf="iperf3 -c $1 -t $3 -f k -p 12345 "
ifconfig eth0 > files/tmp1
localIP=`sed -n "2p" files/tmp1|awk ‘{print $2}‘|cut -d: -f2`
echo -e "\033[43;38;1mget for Internet IP .........\033[0m"
wget http://members.3322.org/dyndns/getip >> /dev/null 2>&1
Internet_IP=`cat getip`
echo -e "\033[42;38;1mInternet IP :$Internet_IP\033[0m"
sleep 3
rm -rf getip
echo "Localhost,Ethernet_IP,$localIP" >>  ./files/${time1}_iperf.csv
echo "Localhost,Internet_IP,$Internet_IP" >>  ./files/${time1}_iperf.csv
echo "Remote,$1" >> ./files/${time1}_iperf.csv
echo "Bandwidth Kbits/sec" >>  ./files/${time1}_iperf.csv
echo "" >>  ./files/${time1}_iperf.csv
echo "Date,Start_Time,End_time,Up_Sender,Up_Receiver,Down_Sender,Down_Receiver,Jitter/ms,Lost/Total,Ping_Latency/ms,Ping_Lost" >> ./files/${time1}_iperf.csv
#exit 
##### Supervision iperf3 #############################################
while [ $time4 -le $time5 ]
do
     sleep1=600
     File_Modify1=`stat ./files/tmp1 | tail -n 2| head -n 1| awk ‘{print $3}‘`
     sleep $sleep1 
     File_Modify2=`stat ./files/tmp1 | tail -n 2| head -n 1| awk ‘{print $3}‘`
     if [ $File_Modify1 == $File_Modify2 ]
     then
          killall iperf3 >> /dev/null 2>&1
          sleep 1
          killall iperf3 >> /dev/null 2>&1
          echo -e "`date`"
          echo -e "\n\n\n\033[41;37m kill zombie iperf3 ..............\033[0m"
          sleep 1
     else
          echo -e "\033[42;37m iperf3 Runing,Has not become zombie ,Every $sleep1 Seconds Check Once  .........\033[0m"
          echo -e "\033[42;38;1mInternet IP :$Internet_IP\033[0m"
     fi
time4=`date +‘%s‘`
done &
# Begin ##############################################
while [ $time4 -le $time5 ]
do
    time2=`date "+%F"`            # Get current time
    time3=`date "+%H:%M:%S"`
   echo "##########################################################################"
   echo -e "`date`"
   echo "Get ping information .....ping -c 30 $1"
    ping -c 30 $1 | tee ./files/tmp1 
    tail -2 files/tmp1 > ./files/tmp2
    ping_Latency=`sed -n "2p" ./files/tmp2 | cut -d/ -f5`
    ping_lost=`sed -n "1p" ./files/tmp2 | awk ‘{print $6}‘`
    echo -e "`date`"
    echo -e "\033[43;31mping_delay:$ping_Latency ms \033[0m"
    echo -e "\033[43;31mping_lost:$ping_lost \033[0m"
  echo "##########################################################################"
  echo -e "\n\n`date`"
  echo "Get upload information........ $iperf "
    $iperf | tee ./files/tmp1
    grep "sender" files/tmp1
    stat=`echo $?`
    grep "iperf Done" files/tmp1
    stat_done=`echo $?`
       while ( [ $stat != 0 ] || [ $stat_done != 0 ] ) 
       do
         killall iperf3 >> /dev/null 2>&1
         sleep 2
         killall iperf3 >> /dev/null 2>&1
         echo -e "`date`"
         echo "Retry Get upload information........ $iperf  "
         sleep 5
         $iperf  | tee ./files/tmp1
         grep "sender" files/tmp1
         stat=`echo $?`
         grep "iperf Done" files/tmp1
         stat_done=`echo $?`
       done
    tail -4 ./files/tmp1 > ./files/tmp2
      up_sender=`sed -n "1p" ./files/tmp2 | awk ‘{print $7}‘`
    up_receiver=`sed -n "2p" ./files/tmp2 | awk ‘{print $7}‘`
    echo -e "\033[43;31mup_sender: $up_sender Kbits/sec\033[0m"
    echo -e "\033[43;31mup_receiver:$up_receiver Kbits/sec\033[0m"
  echo "##########################################################################"
  echo "Get download information........ $iperf -R  "
    $iperf -R | tee ./files/tmp1
    grep "sender" files/tmp1
    stat=`echo $?`
    grep "iperf Done" files/tmp1
    stat_done=`echo $?`
       while ( [ $stat != 0 ] || [ $stat_done != 0 ] ) 
       do
         killall iperf3 >> /dev/null 2>&1
         sleep 2
         killall iperf3 >> /dev/null 2>&1
         echo -e "`date`"
         echo "Retry Get download information........ $iperf -R  "
         sleep 5
         $iperf -R | tee ./files/tmp1
         grep "sender" files/tmp1
         stat=`echo $?`
         grep "iperf Done" files/tmp1
         stat_done=`echo $?`
       done
    tail -4 ./files/tmp1 > ./files/tmp2
      down_sender=`sed -n "1p" ./files/tmp2 | awk ‘{print $7}‘`
    down_receiver=`sed -n "2p" ./files/tmp2 | awk ‘{print $7}‘`
    echo -e "\033[43;31mdown_sender:$down_sender Kbits/sec\033[0m"
    echo -e "\033[43;31mdown_receiver:$down_receiver Kbits/sec\033[0m"
  echo "##########################################################################"
  echo -e "Get UDP information...... $iperf -u -l 1400 "
    $iperf -u -l 1400  | tee ./files/tmp1
    grep "Sent" ./files/tmp1
    stat=`echo $?`
    grep "nan" files/tmp1
    stat2=`echo $?`
    grep "iperf Done" files/tmp1
    stat3=`echo $?`
    if [ $stat -eq 0 ]
   then
        if [ $stat2 -eq 0 -o $stat3 -ne 0 ]
        then
           stat=1    
        fi
    fi
       while [[ $stat != 0 ]]
       do
         killall iperf3 >> /dev/null 2>&1
         sleep 1
         killall iperf3 >> /dev/null 2>&1
         echo -e "`date`"
         echo "Retry Get UDP information........  $iperf -u -l 1450 "
         sleep 1
         $iperf -u -l 1400  | tee ./files/tmp1
         grep "Sent" ./files/tmp1
         stat=`echo $?`
         grep "nan" files/tmp1
         stat2=`echo $?`
         grep "iperf Done" files/tmp1
         stat3=`echo $?`
         if [ $stat -eq 0 ]
         then
         if [ $stat2 -eq 0 -o $stat3 -ne 0 ]
             then
                stat=1    
             fi
         fi
       done
    tail -4 ./files/tmp1 > ./files/tmp2
    Jitter=`sed -n "1p" ./files/tmp2 | awk ‘{print $9}‘`
    sed -n "1p" ./files/tmp2  |awk ‘{print $12}‘>./files/tmp1
    sed -i "s#(##g" ./files/tmp1
    sed -i "s#)##g" ./files/tmp1  
    Lost=`cat ./files/tmp1`
    echo -e "\033[43;31mJitter : $Jitter\033[0m"
    echo -e "\033[43;31mLost: $Lost \033[0m"
    echo "#########################################################################"
    time_end=`date "+%H:%M:%S"`
    echo -e "\033[45;37mlocal  IP is $localIP \033[0m"
    echo -e "\033[45;37mremote Ip is $1 \033[0m"
    echo "$time2,$time3,$time_end,$up_sender,$up_receiver,$down_sender,$down_receiver,$Jitter,$Lost,$ping_Latency,$ping_lost " >> ./files/${time1}_iperf.csv
    echo -e "\033[45;37mrecoder file save as  ./files/${time1}_iperf.csv \033[0m"
    cat ./files/${time1}_iperf.csv
    echo -e "\n\nsleep  300 seconds #####################################################\n\n\n\n"   
    echo -e "recoder file save as  ./files/${time1}_iperf.csv                 "
    rm -rf ./files/tmp1
    rm -rf ./files/tmp2
    sleep 300
time4=`date +‘%s‘`
done 
clear 
cat ./files/${time1}_iperf.csv
echo -e "\033[31m*******************************************************************\033[0m"
echo -e "Information Collection Complete !                        "
date
echo -e "recoder file save as  ./files/${time1}_iperf.csv                 "
echo -e "\033[31m*******************************************************************\033[0m"
时间: 2024-11-01 14:24:42

iperf3 一键自动化测试脚本 2015-0910更新的相关文章

linux iperf3 一键自动化测试脚本

iperf3 一键自动化测试脚本: 日    期:2015年09月01日联系邮箱:[email protected]Q Q  群:1851 1570151CTO博客首页:http://990487026.blog.51cto.com 准备: 1,已经安装iperf3 2,root权限 功能: 1,自动测试ping的数据: ping延时 与ping 丢包,30次 2,iperf3 自动测试TCP 上行带宽吞吐量,单位Kbits/sec 3,iperf3 自动测试TCP 下行带宽吞吐量,单位Kbit

L2TP/IPSec一键安装脚本

本脚本适用环境:系统支持:CentOS6+,Debian7+,Ubuntu12+内存要求:≥128M更新日期:2017 年 05 月 28 日 关于本脚本:名词解释如下L2TP(Layer 2 Tunneling Protocol)IPSec(Internet Protocol Security)IKEv2 (Internet Key Exchange v2)能实现 IPsec 的目前总体上有 openswan,libreswan,strongswan 这3种.libreswan 是基于 ope

ss-panel(ss-R)前后端一键安装脚本(转)

ss-panel(ss-R)前后端一键安装脚本 前几天分享了ss-panel前后端的搭建教程,现在为了练习自己的技术,写了个一键安装脚本! 请注意,本脚本仅仅适用于centos7.* 最新更新:2016/11/5 本脚本包括以下功能: 使用rpm方式搭建LNMP,比市场上的LNMP一键安装包更高效,同时减轻了CPU负担,安装的时间段而且不会安装太多依赖 安装是依赖最新的SS-panel的源码,以及最新ss-rm的代码 本脚本集成了对LNMP以及ss的前端和后端,但是部分依然需要手动操作,请看详细

树莓派:L2TP/IPsec VPN 服务器一键安装脚本

经试验,在树莓派上一次成功,很好用,谢谢原作者!!!此文转自:https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/README-zh.md IPsec VPN 服务器一键安装脚本 使用 Linux Shell 脚本一键快速搭建 IPsec VPN 服务器.支持 IPsec/L2TP 和 Cisco IPsec 协议,可用于 Ubuntu,Debian 和 CentOS 系统.你只需提供自己的 VPN 登录凭证,然后运行脚本自动完成安装. I

cacti 0.8.8h 一键安装脚本

cacti 0.8.8h 一键安装脚本 cacti rrdtool # cacti 0.8.8h 一键安装脚本 # Make by Fenei # E-Mail : [email protected] # Date : 13-Sep-2016 # URL:http://babyfenei.blog.51cto.com/443861/1852324 #----------------------------------------------------- # 本脚本自动安装 cacti0.8.8

SS_R服务端一键安装脚本

文章转自:https://xubiji.com/5680.html SS-R 是项目 SS 的增强版,用于方便地产生各种协议接口.实现为在原来的协议外套一层编码和解码接口,不但可以伪装成其它协议流量,还可以把原协议转换为其它协议进行兼容或完善,需要服务端与客户端配置相同的协议插件. 据了解,原版 SS-go 版基本来说已经阵亡(干扰严重),目前本人已在服务器安装 SSR,配合 SS-R 客户端使用新协议和混淆插件提升效果非常明显,速度快了好几倍.续笔记自媒体也对原脚本做了部分的修改,自用为主,考

Red5一键安装脚本(Linux&Win):一键搭建你的直播平台

Red5一键部署script(Linux&Win):一键搭建你的直播平台 看到bilibili,熊猫TV,斗鱼TV等直播平台你是不是也很眼红呢,这里站长为大伙写了一个Red5一键部署script. Red5供给基于Flash的流媒体服务的一款基于Java的开源流媒体服务器.它由Java言语编写,使用RTMP作为流媒体传输协议,实时视频播放.直播等功能.可以与OBS串流同用. script特点 1.一键部署JDK,JDK环境配置 2.一键关闭防火墙,启动Red5 3.支持Centos6 32bit

Linux+Win锐速&Lot开心版一键安装脚本+源码

Linux+Win锐速&Lot愉快版一键部署script+源码 当咱们购置本国服务器使用时可以说是比较卡,特别是那些挂小水管,的更是埋怨不住,此刻锐速拯救了咱们不过不幸的是, 他们现时曾经终止注册,客人是咱们还想注册怎地办? 1.OpenVZ不支持锐速!现时仅支持KVM,Xen,vmare,如果不清晰本人是甚么 请点伏笔VPS 2.锐速对linux系统以及内核版本要求异常严厉.引荐Centos6,变换内核教程 请点伏笔VPS 3.如果网卡称号不是eth0的话,会部署失利,请联络主机商或者在面板修

linux tomcat一键维护脚本(值得收藏)

<span style="font-family: Arial, Helvetica, sans-serif;">#! /bin/sh</span> a="/usr/share/tomcat7/webapps/ROOT" b="/usr/share/tomcat7/webapps/ROOT.war" c="ROOT.war" tomcat_stop="/usr/share/tomcat7/bi