Networking
Cisco 2960-X ssh 輸出被截斷
目標(交換機):
執行 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"
請不要問我為什麼解決方案有效….