Назад | Перейти на главную страницу

Выходной сигнал ssh Cisco 2960-X усечен

Цель (переключатель):
Cisco 2960-X под управлением IOS версии 15.2 (2) E6

Хост (сервер пытается связаться с коммутатором):
ВЫПУСК FreeBSD 11.0

Я хочу периодически сохранять изученные MAC-адреса коммутатора, чтобы поддерживать базу данных «кто был, где и когда» клиентских устройств.

Я знаю подход SNMP (где разные MIB считываются и коррелируются), но по причинам, которые я не хотел бы здесь обсуждать, я не могу использовать SNMP.

Мое решение - сохранить ключ public-ssh на коммутаторе и выполнить следующую команду:

ssh user @ switch "показать таблицу MAC-адресов"> outputfile.txt

Обычно команда работает, и вывод «sh mac add» перенаправляется в выходной файл. НО:

Около 20% попыток я получаю файл размером 8 Кбайт (ровно 8 Кбайт) в качестве вывода, остальное как-то усекается, прямо в середине вывода.

Кто-нибудь знает, почему мои файлы обрезаются?

ОБНОВЛЕНИЕ1:
Я забыл упомянуть, что команда ssh находится в сценарии bash, который запускается cron каждые X минут. Если быть точным, в скрипте теперь есть 2 команды для 2 разных переключателей, и аномалия не ограничивается вторым переключателем - оба они иногда возвращают 8k результатов.

ОБНОВЛЕНИЕ2:
Если я изменю сценарий для выполнения 2 команд ssh в цикле и вызову его прямо из моей оболочки, проблема, похоже, исчезнет ... (Первоначально сценарий был вызван cron) Я пришел к выводу, что это как-то связано с cron.

У меня была точно такая же проблема, примерно после 64000 байт вывод был вырезан - но только при запуске через cron. После устранения неполадок я нашел следующее решение

ssh user@switch "show mac address-table"

заменить на

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

Пожалуйста, не спрашивайте меня, почему решение работает ....