Cisco 2960-X ssh 输出被截断

Cisco 2960-X ssh 输出被截断

目标(交换机):
运行 IOS 版本 15.2(2)E6 的 Cisco 2960-X

主机(尝试访问交换机的服务器):
FreeBSD 11.0-RELEASE

我想定期保存从交换机学习到的 MAC 地址,以维护客户端设备的“谁在何时何地”数据库。

我知道 SNMP 方法(读取和关联不同的 MIB),但由于一些我不想在此讨论的原因,我无法使用 SNMP。

我的解决方案是在交换机上保存一个公共 ssh 密钥并发出以下命令:

ssh 用户@switch“显示 mac 地址表”> outputfile.txt

通常,该命令有效,并且“sh mac add”的输出将被重定向到输出文件。但是:

大约有 20% 的尝试最终得到一个 8kb(正好是 8kb)的文件作为输出,其余的则以某种方式被截断,就在输出的中间。

有人知道为什么我的文件被截断了吗?

更新 1:
我忘了说 ssh 命令位于 bash 脚本中,该脚本由 cron 每 X 分钟运行一次。确切地说,现在脚本中有 2 个命令用于 2 个不同的交换机,并且异常不仅限于第二个交换机 - 它们有时都会返回 8k 个结果。

更新2:
如果我改变脚本以循环执行 2 个 ssh 命令并直接从我的 shell 调用它,问题似乎就消失了......(最初该脚本是由 cron 调用的)我的结论是它与 cron 有关。

答案1

我遇到了完全相同的问题,大约 64,000 字节后输出被切断 - 但只有通过 cron 运行时才会发生这种情况。经过故障排除后,我找到了以下解决方案

ssh user@switch "show mac address-table"

替换为

ssh user@switch < echo "show mac address-table"

请不要问我为什么这个解决方案有效......

相关内容