Networking

Cisco 2960-X ssh 輸出被截斷

  • July 14, 2017

目標(交換機):

執行 IOS 版本 15.2(2)E6 的 Cisco 2960-X

主機(試圖到達交換機的伺服器):

FreeBSD 11.0-RELEASE

我想定期保存從交換機學習到的 MAC 地址,以維護客戶端設備的“誰在何時何地”數據庫。

我知道 SNMP 方法(讀取和關聯不同的 MIB),但由於我不想在這裡討論的原因,我不能使用 SNMP。

我的解決方案是在交換機上保存一個公共 ssh 密鑰並發出以下命令:

ssh user@switch “顯示 mac 地址表” > outputfile.txt

通常該命令有效,“sh mac add”的輸出將被重定向到輸出文件。但:

大約 20% 的嘗試最終得到一個 8kb(正好 8kb)的文件作為輸出,其餘的被截斷了,就在輸出的中間。

有人知道為什麼我的文件被截斷嗎?

UPDATE1:

我忘了提到 ssh 命令在一個 bash 腳本中,該腳本由 cron 每 X 分鐘執行一次。確切地說,腳本中現在有 2 個命令用於 2 個不同的開關,並且異常不限於第二個開關 - 它們有時都會返回 8k 結果。

UPDATE2:

如果我更改腳本以循環執行 2 個 ssh 命令並直接從我的 shell 呼叫它,問題似乎消失了……(最初腳本是由 cron 呼叫的)我的結論是它與克朗。

我遇到了完全相同的問題,在大約 64.000 字節後輸出被切斷 - 但只有在通過 cron 執行它時。故障排除後,我找到了以下解決方案

ssh user@switch "show mac address-table"

替換為

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

請不要問我為什麼解決方案有效….

引用自:https://serverfault.com/questions/856286