shell路由查询脚本

由geotrace的脚本进行修正,原脚本出现很多问题,查了一些awk的资料,才解决原先的问题。

mtr-0.86的版本安装失败,需要更新一些软件,所以使用了0.80

也可以使用nali这个软件,很方便。

该脚本常用于网络监测,可以显示:跳数、IP、延迟、地区运营商,前提是要能联网.


yum install jwhois -y

wget   ftp://ftp.bitwizard.nl/mtr/mtr-0.80.tar.gz

tar -axf mtr-0.80.tar.gz -C /usr/local/src/

cd /usr/local/src/mtr-0.80/

./configure --prefix=/usr/local/mtr

make

make install

ln -s /usr/local/mtr/sbin/mtr /usr/sbin/

cat > /root/geotrace.sh<<\EOF

#!/bin/bash

echo traceroute to [$1] from localhost

ip=$1

echo

####for linux

####显示详细地理位置信息

#echo ----显示详细地理位置信息----

#mtr --n --report $ip|grep -v Snt|grep   "%"|awk ‘{printf "%-18s    %-10s",  NR ")   "$2,"  Delay["$5"s]   " ; system("whois   "$2"|grep -e netname -e descr|head -n1|cut -c17-");printf   "\n"}‘

####显示简略地理位置信息

echo ----显示简略地理位置信息---

echo -e "\033[40;33;1m跳数      IP              延迟            运营商 \033[0m"

mtr --n --report $ip|grep -v Snt|grep   "%"|awk ‘{printf "%-18s    %-10s",  NR ")   "$2,"  Delay["$5"s]   " ; system("whois   "$2"|grep descr|head -n1|cut -c17-");printf "\n"}‘

###for mac

####显示详细地理位置信息

#echo ----显示详细地理位置信息----

#mtr --n --report $ip|grep -vE "Snt|Start"|awk   ‘{printf "%-18s  %-10s",  NR ") "$2, "   Dleay["$6"]    ";system("whois "$2"|grep -e netname -e descr|cut   -c17-");printf "\n"}‘

####显示简略地理位置信息

#echo ----显示简略地理位置信息---

#mtr --n --report $ip|grep -vE   "Snt|Start"|awk ‘{printf "%-18s  %-10s",  NR ") "$2, "   Dleay["$6"]    ";system("whois "$2"|grep descr|head -n1|cut   -c17-");printf "\n"}‘

EOF

测试:


[root@www ~]# sh geotrace.sh www.baidu.com

traceroute to [www.baidu.com] from localhost

----显示简略地理位置信息---

跳数    IP              延迟            运营商

1) 192.168.16.1       Delay[1.2s]

2) 192.168.16.7       Delay[1.2s]

3) 14.23.*.*       Delay[9.2s]   CHINANET Guangdong province network

4) 121.32.132.50      Delay[1.7s]   CHINANET Guangdong province network

5) 183.56.31.37       Delay[4.9s]   CHINANET Guangdong province network

6) 61.140.98.253      Delay[5.1s]   CHINANET Guangdong province network

7) 202.97.64.57       Delay[32.6s]   CHINANET backbone network

8) 202.102.69.238     Delay[37.3s]   CHINANET jiangsu province network

9) 180.97.32.34       Delay[30.3s]   Chinanet    Jiangsu Province   Network

10) 180.97.33.107     Delay[26.7s]   Chinanet    Jiangsu Province   Network

时间: 2024-10-18 23:49:13

shell路由查询脚本的相关文章

Java调用Shell命令和脚本,致力于hadoop/spark集群

前言 说明的是,本博文,是在以下的博文基础上,立足于它们,致力于我的大数据领域! http://kongcodecenter.iteye.com/blog/1231177 http://blog.csdn.net/u010376788/article/details/51337312 http://blog.csdn.net/arkblue/article/details/7897396 第一种:普通做法 首先,编号写WordCount.scala程序. 然后,打成jar包,命名为WC.jar.

Shell编程(脚本)的常用命令和语句

一些常用的Shell编程(脚本)命令和语句,可以满足一般需求. 接收到的命令参数: 参数个数: $# 参数值: 命令本身:$0 第一个参数:$1 第二个参数:$2 -- 退出命令: exit echo命令: 换行: echo 输出后不换行: echo -n "请选择(y/n)?" 利用转义符号输出双引号: echo "欢迎使用\"正式服务器\"部署工具." 输出中带变量: echo "即将部署项目:$project_name"

shell vs python脚本监控http请求

各写一个shell和python脚本来监控http请求,并在服务不可用的时候重启服务. 监控的连接为: http://192.168.1.101:5022/product http://192.168.1.101:5024/module shell脚本如下,配合crontab计划任务每一分钟执行一次检查: #!/bin/bash # This shell is used to moniter 192.168.1.101 port 5022 & 5024 date  #在crontab里用来记录l

Linux Shell 运维脚本功底积累

1.删除Linux远程用户连接会话 [[email protected] logs]# w 10:45:28 up 15 days, 16:23, 4 users, load average: 0.00, 0.00, 0.00 USER TTY FROM [email protected] IDLE JCPU PCPU WHAT root tty1 - Sun21 4days 0.00s 0.00s -bash root pts/0 192.168.1.2 09:11 0.00s 0.07s 0

Shell执行将脚本里的变量打印到指定日志文件

首先需要定位获取任务的运行日志或者报错信息,才能定位问题. 通过shell调用有些脚本的话,日志信息会打印在shell里.不过也有用户在shell里调用正常,但是到crontab调用的时候就出错并且没日志了. 针对这种情况,可以在crontab里把任务执行的输出记录下来,后续出了问题可以到日志文件里获取任务的日志.可以参考:  abc -f xxx.sql >> /home/admin/logs/xxx.log 2>&1  待续...

Shell编程(脚本)的经常使用命令和语句

一些经常使用的Shell编程(脚本)命令和语句,能够满足一般需求. 接收到的命令參数: 參数个数: $# 參数值: 命令本身:$0 第一个參数:$1 第二个參数:$2 -- 退出命令: exit echo命令: 换行: echo 输出后不换行: echo -n "请选择(y/n)?" 输出后不换行,并把光标移到最左(以便下次输出覆盖当前行) echo -ne "$i\r" 利用转义符号输出双引號: echo "欢迎使用\"正式server\&qu

Shell学习之: 脚本之间的调用

在Java,Python中,可以用import的方式来进行脚本或模块之间调用,例如: >>> import math >>> math.sqrt(4) 2.0 在Shell中要如何调用别的shell脚本,或别的脚本中的变量,函数呢? 方法一:   . ./subscript.sh       方法二:   source ./subscript.sh 注意: 两个点之间,有空格,千万注意. 两个脚本不在同一目录,要用绝对路径 为简单起见,通常用第一种方法 例如: main

执行SQL查询脚本

static void Main(string[] args) { Console.WriteLine("输入用户编号:"); string cusernum = Console.ReadLine(); Console.WriteLine("输入用户名:"); string cusername = Console.ReadLine(); string connString = @"Data Source=.; Initial Catalog=lh0216;

Shell入门之脚本管理学习笔记

1.shell介于操作系统与用户之间,负责解释命令行 2./etc/shells 记录了系统支持的有效登录的shell 3./etc/passwd 最后一位可以看到用户默认的shell 4.直接输入shell的名称 可以切换shell 5.shell命令的记录可以用history查看 history -c 清除 历史命令存放在.bash_history文件中 6.shell的指令可以用 alias 别名 = 实际名 来替换 取消则用 unalias 别名 7.shell变量 <1>定义变量 变