linux 网络测试脚本

#!/bin/sh
#*************************************************************
# 网络测试脚本
# written by braincol 2011.04.06
#*************************************************************

#****************************************
#被注释掉的方法获取网关所需的时间太长!
#GATEWAY=`route | grep 'default.*' | awk '1{split($0,parts," ");print parts[2]}'` 
#**************************************** 
GATEWAY=`cat /proc/net/route | awk '
	function char2num(char) 
	{
 		dec = "0123456789";   # decimal
 		cap = "ABCDEF";       # capital
 		min = "abcdef";       # minuscule
 		if( length(char) > 1 ){
  			print "the length of the input char is erro!";
  			return;
 		}
 		if( index(dec,char) > 0 ) {
  			return (index(dec,char) - 1);
 		} 
 		else if( index(cap,char) > 0 ) {
	 		return (index(cap,char) + 9);
	 	}
	 	else if( index(min,char) > 0 ) {
	  		return (index(min,char) + 9);
	 	}
		else{
	 		#print "input char error!"
			return 0
		}
	} 

	function str2ip(str) {
 		split(str,out,"");
 		strout= sprintf("%d.%d.%d.%d",	
  					char2num(out[7])*16 + char2num(out[8]),
					char2num(out[5])*16 + char2num(out[6]),
 					char2num(out[3])*16 + char2num(out[4]),
					char2num(out[1])*16 + char2num(out[2]));
 		return strout;
	}
	
	(FNR>1) {
		split($0,parts," ")
		if(parts[3] != "00000000"){
			print str2ip(parts[3])
		}
	}'`

#*******************************************
#被注释掉的方法获取的dns太多,实际只需一个就够了
#NAMESERVER=`cat /etc/resolv.conf | grep 'nameserver.*' | sed 's/^.*nameserver *//g'`
#******************************************* 
NAMESERVER=`cat /etc/resolv.conf |awk '(FNR<2) && /nameserver.*/' |sed 's/^.*nameserver *//g'`

INTERNET="www.baidu.com"
echo "GATEWAY: " $GATEWAY
echo "NAMESERVER: " $NAMESERVER
echo "INTERNET: " $INTERNET
echo "------------------------------"

ping -c 3 127.0.0.1 > /dev/null 2>&1
if [ "$?" != "0" ]; then
	echo "Network card does not work! "
else
	echo "Network card is OK!"
fi
 
ping -c 3 $GATEWAY > /dev/null 2>&1
if [ "$?" != "0" ]; then
	echo "Can't connect to GateWay!"
else
	echo "GateWay is connected!"
fi

ping -c 3 $NAMESERVER > /dev/null 2>&1
if [ "$?" != "0" ]; then
	echo "Can't connect to DNS!"
else
	echo "DNS is connected!"
fi

ping -c 3 $INTERNET > /dev/null 2>&1
if [ "$?" != "0" ]; then
	echo "Can't connect to Internet!"
else
	echo "Internet is connected!"
fi
exit 0

转载于:https://www.cnblogs.com/hibraincol/archive/2011/04/06/2007072.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TestBandwitdth脚本用于测试带宽; //***************************************************************************************** 用法: 1.将“TestBandwidth.tar.gz”脚本copy到服务器上解压后,进入目录; 2.编辑“TestURL.sh”:灌流量; 上行:wget http://*** 下行:post http://*** 3.如果修改了步骤2,执行此步,否则跳过: 修改 TestBandwidth.tar.gz 脚本中的倒数5-6行; kill -9 `ps -ef|grep wget|grep http|awk '{print $2}'` //修改kill关键字:grep wget rm zhuxian* //修改rm关键字:zhuxian* 4.修改“bandwidth.sh”:修改检测网卡: netcard=em1 5.使用后台运行命令执行:nohup ./bandwidth.sh (注:停止脚本 pkill -9 bandwidth.sh && pkill -9 wget) 6.查看结果:BandwitdthResult.txt //********************************************************* 测试流量:清空“TestURL.sh”文件时执行就是测试流量 //***************************************************************************************** 脚本说明: 1.调用TestURL.sh脚本启动灌流量操作; 2.等待10s(防止刚开始下载时的流量冲高); 3.取当前网卡已接收的上行、下行数据流量; 4.等待5s; 5.取当前网卡已接收的上行、下行数据流量; 6.计算两次取值中间的差值,算平均值; 7.等待10s,开始下一次小循环(循环4次)(一次小循环70s); 8.清除下载进程,清除下载文件,清除下载日志; 9.等待3495s,开始下一次大循环(一次大循环1h);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值