我有一些主机组,每个组需要特定的路由。
路由时不时地被修改,我想编写一个脚本来检查同一组中主机之间的差异。
我尝试比较命令的输出ip r
,但每个主机之间存在细微差异(例如接口名称和指标),这会导致误报。
例如,假设我有以下主机、路由和 VLAN(全部为本示例而制作):
Host 1:
10.0.0.30 via 192.168.0.1 VLAN 1
100.50.10.10 via 10.0.0.1 VLAN 2
而主机2只有以下内容:
Host 2:
10.0.0.30 via 192.168.0.1 VLAN 1
我希望脚本能够抱怨缺少的100.50.10.10 via 10.0.0.1 VLAN 2
.
我不介意接口名称或指标,只是10.50.10.10
通过一台服务器到达该地址VLAN2
,而不是另一台服务器。
我真的很感激解决这个问题的任何想法和方向。
谢谢你!
答案1
您对完整的产品线不感兴趣。因此,过滤掉您感兴趣的部分。作为针对您所描述内容的快速而肮脏的解决方案,
sed -n 's/ via [0-9\.]* /;/p'
将提供您感兴趣的领域。
但是,最好参考一下路由表应该是什么样子,并将主机的路由表与该表进行比较。有可能所有主机上都缺少所需的路由,然后您将得到漏报。