0

我需要一些有关如何过滤跟踪路由返回的数据的帮助。

简介 我正在运行一个 bash 脚本来检查此命令返回的 IP:

IP=`traceroute -m 2 www.test.com | awk -vOFS='\t' '{if (NR==3){print $2}}'`
echo "$IP: `date`"

基于“$IP”的值,我执行“expect”命令来修改开关内的参数。

bash 脚本是通过根 crontab 安排的。

问题描述 执行该bash脚本的crontab正在生成这样的日志

192.168.3.25: vie dic 14 14:10:23 CET 2012
192.168.3.25: vie dic 14 14:20:12 CET 2012
192.168.3.25: vie dic 14 14:30:11 CET 2012
192.168.3.25: vie dic 14 14:40:11 CET 2012
192.168.3.25: vie dic 14 14:50:11 CET 2012
expect /root/Scripts/delete.exp
192.168.3.111: vie dic 14 15:00:11 CET 2012
*: vie dic 14 15:10:11 CET 2012
*: vie dic 14 15:20:16 CET 2012

如您所见,在执行 expect 脚本后出现问题,并且 traceroute 行开始返回“*”而不是正确的 IP(192.168.3.25)。我认为由于某种原因,在对交换机进行修改后,大约 20 分钟后,traceroute 少返回了一行(第一行显示交换机的 IP 丢失了)。

我已经以多种方式测试了traceroute返回的值,我认为我应该避免使用awk来过滤从traceroute返回的值。那是因为只要我知道,通过使用 awk 我就可以使用“NR”来过滤行。所以,我不知道如何过滤这些值以搜索特定的值(即一个特定的 IP)。

谢谢您的帮助。

4

1 回答 1

0

问题已解决。我刚刚通过添加“| grep IP_to_filter”修改了traceroute命令

于 2012-12-17T12:32:21.357 回答