我需要一些关于如何过滤traceroute返回的数据的帮助。
简介 我正在运行一个bash脚本来检查此命令返回的IP:
IP=`traceroute -m 2 www.test.com | awk -vOFS='\t' '{if (NR==3){print $2}}'`
echo "$IP: `date`"
根据“$ IP”的值,我执行“expect”命令修改开关内的参数。
bash脚本是通过root 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)。
感谢您的帮助。
答案 0 :(得分:0)
问题已解决。我刚刚通过添加“| grep IP_to_filter”
修改了traceroute命令