Answers:
我经常使用
sh int | i (FastEthernet|0 packets input)
或与GigabitEthernet相同,无论我要检查哪种接口。
sh int
(是show interfaces
)给出了所有接口的Ste状态的巨大列表|
可用于过滤,也可用于搜索表达式| i
(用于include
)过滤与以下搜索表达式匹配的输出(...|...)
用来匹配两个条件:接口名称和我喜欢看到的状态,我们可以在这里使用正则表达式,例如“或”表达式输出如下所示:
...
FastEthernet1/0/31 is up, line protocol is up (connected)
95445640 packets input, 18990165053 bytes, 0 no buffer
FastEthernet1/0/32 is up, line protocol is up (connected)
FastEthernet1/0/33 is up, line protocol is up (connected)
FastEthernet1/0/34 is down, line protocol is down (notconnect)
0 packets input, 0 bytes, 0 no buffer
FastEthernet1/0/35 is down, line protocol is down (notconnect)
FastEthernet1/0/36 is up, line protocol is up (connected)
FastEthernet1/0/37 is down, line protocol is down (notconnect)
0 packets input, 0 bytes, 0 no buffer
...
现在,我可以看到我的候选项,即使我的表达式与以0结尾的数字匹配,但实际上随着时间的推移输入了0个数据包。我可以使其更加完美,但易于记忆也是一个好处。我的候选项是每0个数据包输入行之前的接口名称。
sh int <name>
clear counters [type number]
最好关闭未使用的交换机端口。因此,使用sh ip int bri
或类似方法可以轻松识别它们。如果使用以前已明确关闭的切换端口,也不会遇到问题。
sh int | i FastEthernet|0 packets input
最终...文档。您需要知道每条跳线在哪里都可以100%确定您没有断开某人可能期望在某些时候工作的东西。仅因为端口当前处于“关闭”状态并不意味着没有人在使用该端口。同样,仅因为计数器当前为零并不意味着在不久的将来它不会被使用或不再被使用-计数器可以清除,并且计数器在启动时重置为零。
我曾在ISP和大型企业工作,文档是了解内容的关键。没有它,随机猜测将导致无数糟糕的日子……当您将DSL线路连接到其他人,重复地址分配,关闭错误的接口等时,客户会非常生气。如果没有文档,在数千条电缆中查找数十根电缆可能会很痛苦(而且端口描述很简单)。
我也喜欢
sh int | inc line protocol is|Last input
哪个输出
FastEthernet0/29 is down, line protocol is down (notconnect)
Last input never, output never, output hang never
FastEthernet0/30 is up, line protocol is up (connected)
Last input never, output 00:00:07, output hang never
FastEthernet0/46 is down, line protocol is down (notconnect)
Last input never, output 6d23h, output hang never
输出参数告诉您端口上次看到流量的时间,这对于识别那些仅偶尔使用的端口很有用。
编辑:还值得注意(由于超出了此问题范围的原因)是“最后输入”几乎总是“从不”
我喜欢@Stefan的答案,但是使用此命令行“ sh int | i(以太网| 0个数据包输入)”现在可以捕获所有以太网接口类型并过滤掉以零结尾的非零数字。他提到可能进行一些微调,所以这只是一个例子。
另一种选择是...
sh int counters | i (Port|_0 0 0 0)
是的,需要空格。正确获取空格的最简单方法是执行“ sh int counters”并复制全零的行。这里的一个陷阱是,列表的中途从所需的Input更改为Output,我们不关心查找未使用的端口。它的优点是仅显示没有输入的端口,因此您不必像使用Stefan的方法那样清除使用中的端口。
show int counters | i _0_.*_0_.*_0_.*_0_
空格代替......您的答案也必须是sh int counters | i (Port|_0 0 0 0)
(请注意下划线,IOS将其解释为空格)
show interfaces counters | inc ( +0 +0 +0)
。
我会抓取输出(或使用SNMP抓取甚至更好),然后使用标准的UNIX工具对其进行解析。这是一个简单的例子:
在这里,我将“ show int counters”(仅出于演示目的)的部分输出保存到了一个名为“ counters”的文件中。
[mkantows@ochofu049]$ cat counters
Port InOctets InUcastPkts InMcastPkts InBcastPkts
Gi1/0/1 0 0 0 0
Gi1/0/2 94949242720 556137619 571828 57745
Gi1/0/3 1522191492 8663327 1105299 55269
Gi1/0/4 3743856345 18565173 1275617 53658
Gi1/0/5 0 0 0 0
Gi1/0/6 0 0 0 0
现在,只需使用awk生成所有四个计数器字段均为零的所有端口的报告:
[mkantows@ochofu049]$ cat counters | awk '{if ($2 == 0 && $3 == 0 && $4 == 0 && $5 == 0) print $1}'
Gi1/0/1
Gi1/0/5
Gi1/0/6
这里的主要思想是从设备中获取您正在使用的任何数据,以便您可以进行更智能/复杂/更简单/任何解析和报告。
注意对于多个设备,使用“ screen”之类的Linux实用程序记录tty连接的输出可以非常有效地快速查找多个cisco设备上未使用的端口。(在一个日志文件中)运行类似以下的命令...,其中“ HOSTNAME”是Cisco设备主机名方案的通用组成部分。awk'{if($ 1 == HOSTNAME)|| ($ 2 == 0 && $ 3 == 0 && $ 4 == 0 && $ 5 == 0)打印$ 1}'
grep
和传递文件sed
。
show int counters | i _0_.*_0_.*_0_.*_0_
如果您需要定期执行此操作,Perl和Net :: Telnet :: Cisco就是最好的选择。您可以登录X个路由器,获取所需接口上的所有信息,解析输出,然后将其打印到文件中,或者通过Net :: SMTP通过电子邮件发送给它,或者将其打印到标准输出中。如果您愿意,我可以提供示例,但这非常简单。
另外,如果您不愿意在IOS中执行此操作,则以下TCL脚本将以一种简洁的格式为您提供所需的输出:
set show_counters [exec show interfaces counters | i 0 +0 +0 +0]
set line [split $show_counters "\n"]
foreach record $line {
set fields [join $record " "]
foreach field $fields {
if { $field != 0 } {
puts $field
}
}
}
我之所以这样提供,是因为与Perl相比,TCL及其操作方法[IMHO]的访问性稍差一些
sh int | i ( 0 packets input)|proto|Desc
带0的前导空格将排除以0结尾的较大数字。
最好关闭(禁用)端口,直到它们被使用为止。例如,在已经打开的端口上更改交换端口访问vlan是有风险的,除非您可以确定未使用它。
输出可能如下所示,它告诉我们g8 / 18上的交换端口被0个数据包禁用,因为使用g8 / 19时最后一个计数器清零了(由于没有“ 0个数据包输入”)。
GigabitEthernet8/18 is administratively down, line protocol is down (disabled)
Description: 3a30
0 packets input, 0 bytes, 0 no buffer
GigabitEthernet8/19 is up, line protocol is up (connected)
Description: 4a25.vmhost112 (vmnic5)
至于知道涉及哪个配线架插孔,请使用“描述”字段来帮助您进行记录。配线架应以一致的方式连接到交换机端口,因此易于记录,因为配线架插孔可预知。我在描述中使用了Rack-Row-Jack格式+要跟踪的主机名,但采用了一种简明的方式。4b27将是行机架4,行b,插孔27,后跟hostxyz或任何主机名。因此,我的描述为4b27.hostxyz。
sh int | in is down|input never, output never
FastEthernet0 is administratively down, line protocol is down
Last input never, output never, output hang never
GigabitEthernet1/0/2 is down, line protocol is down (notconnect)
GigabitEthernet1/0/4 is down, line protocol is down (notconnect)
Last input never, output never, output hang never
GigabitEthernet1/0/13 is down, line protocol is down (notconnect)
Last input never, output never, output hang never
GigabitEthernet1/0/24 is down, line protocol is down (notconnect)
Last input never, output never, output hang never
好。从2900开始的所有交换机上都可以使用的设备(无需测试更早),仅显示向下的端口。
sh int | i is down
我很乐意使用,sh int status
但是之后的结果是connected
和notconnected
,因此排除或包含对您没有任何好处,因为“连接”一词是二者的一部分,因此您可以理解故事。
就3524而言,我在以下两个命令中都得到了这一点,以使其工作清楚:
SD-LIB-C3524#sh int status
Port Name Status Vlan Duplex Speed Type
------- ------------------ ------------ -------- ------ ------- ----
Fa0/1 notconnect 10 Auto Auto 100BaseTX/FX
Fa0/2 notconnect 10 Auto Auto 100BaseTX/FX
Fa0/3 connected 10 A-Full A-100 100BaseTX/FX
Fa0/4 notconnect 10 Auto Auto 100BaseTX/FX
Fa0/5 notconnect 10 Auto Auto 100BaseTX/FX
Fa0/6 notconnect 10 Auto Auto 100BaseTX/FX
Fa0/7 notconnect 10 Auto Auto 100BaseTX/FX
Fa0/8 notconnect 10 Auto Auto 100BaseTX/FX
Fa0/9 connected 10 A-Full A-100 100BaseTX/FX
Fa0/10 notconnect 10 Auto Auto 100BaseTX/FX
Fa0/11 connected 10 A-Full A-100 100BaseTX/FX
Fa0/12 connected 10 A-Full A-100 100BaseTX/FX
Fa0/13 WiFi SD-LIB-15 connected 40 A-Full A-100 100BaseTX/FX
Fa0/14 WiFi SD-LIB-22 connected 40 A-Full A-100 100BaseTX/FX
Fa0/15 WiFi SD-LIB-16 connected 40 A-Full A-100 100BaseTX/FX
Fa0/16 WiFi SD-LIB-23 connected 40 A-Full A-100 100BaseTX/FX
Fa0/17 WiFi SD-LIB-17 connected 40 A-Full A-100 100BaseTX/FX
Fa0/18 WiFi SD-LIB-24 connected 40 A-Full A-100 100BaseTX/FX
Fa0/19 WiFi SD-LIB-18 connected 40 A-Full A-100 100BaseTX/FX
Fa0/20 WiFi SD-LIB-14 connected 40 A-Full A-100 100BaseTX/FX
Fa0/21 WiFi SD-LIB-19 connected 40 A-Full A-100 100BaseTX/FX
Fa0/22 WiFi SD-LIB-21 connected 40 A-Full A-100 100BaseTX/FX
Fa0/23 WiFi SD-LIB-20 connected 40 A-Full A-100 100BaseTX/FX
Fa0/24 SD-LIB-3C4500-50P connected trunk A-Full A-100 100BaseTX/FX
Gi0/1 notconnect trunk Auto 1000 Missing
Gi0/2 notconnect 10 Auto 1000 Missing
SD-LIB-C3524#sh int | i is down
VLAN1 is up, line protocol is down
FastEthernet0/1 is down, line protocol is down
FastEthernet0/2 is down, line protocol is down
FastEthernet0/4 is down, line protocol is down
FastEthernet0/5 is down, line protocol is down
FastEthernet0/6 is down, line protocol is down
FastEthernet0/7 is down, line protocol is down
FastEthernet0/8 is down, line protocol is down
FastEthernet0/10 is down, line protocol is down
GigabitEthernet0/1 is down, line protocol is down
GigabitEthernet0/2 is down, line protocol is down
SD-LIB-C3524#
这有点作弊,但是如果所有内容都仅附加到一个终端设备上,则可以使用粘性MAC地址打开端口安全性。请过一会儿再检查一次(如果您期望有一段合理的时间来假设有人会使用该计算机或该计算机不存在),然后运行的配置将显示是否有任何人使用了该端口。我很确定您可以在每个接口上最多使用大于1的粘性Mac地址,以防万一您在同一端口上使用VoIP电话和计算机,但是我不确定。
我认为在思科环境中,最好的方法是制作一个演示版本,以了解交换机的正常运行时间以及
显示界面计费
Interface Vlan1 is disabled
Vlan810
Protocol Pkts In Chars In Pkts Out Chars Out
IP 709229 73055034 232297 33127143
ARP 738 44280 70 4200
FastEthernet0/1
Protocol Pkts In Chars In Pkts Out Chars Out
No traffic sent or received on this interface.
FastEthernet0/2
Protocol Pkts In Chars In Pkts Out Chars Out
Other 0 0 19 6669
Spanning Tree 0 0 18588 1115280
CDP 0 0 658 309918
仅使用IOS命令有点棘手-您会错过奇怪的一个。我建议像其他人一样使用snmp(solarwinds有许多您可能要看的免费工具)并监视设备数天(必要时数周)
对于您用电缆等进行的费力工作,我最大程度地减少了将交换机端口映射到跳线端口等工作的工作,是清除计数器,然后几天后使用snmp陷阱,然后在跳线板上拔出1-2几秒钟后,当我在snmp trap监视器/接收器上输入一个条目(模块y上的端口x断开)时,我再次做同样的事情来验证(不是有人偶然关闭了其中一个端口上的设备)。24端口面板可能需要5分钟-因此这是相当快的。对于死者-再回去一次。如果它们仍然没用,并且计数器上没有任何变化,那么可以安全地假定该端口实际上未被使用。
我通常使用“显示界面状态”及其变体,但我也使用整洁的开源软件“ Switchmap”来提供界面的简单图形视图。这样做的一大好处是,如果端口处于打开/关闭状态,它将告诉您上一次在其上进行通信的时间有多久,您可以从那里拨打电话,以决定是否应重复使用它。
http://sourceforge.net/projects/switchmap/
这样可以节省一些输入:-)
test cable diagnostics tdr interface *intname here*
这应该向您显示连接到交换机端口的电缆是否实际连接到任何东西。不论其地位。替换test
为show
以获得状态。
show int status
。如果我已经拔掉笔记本电脑回家的电源,那么早上可能会重新分配我的端口。