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

Target (switch):
Cisco 2960-X под управлением IOS версии 15.2 (2) E6

Хост (сервер пытается связаться с коммутатором):
FreeBSD 11.0-RELEASE

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

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

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

ssh user @ switch "show mac address-table "> outputfile.txt

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

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

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

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

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

0
задан 17 June 2017 в 02:52
1 ответ

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

ssh user@switch "show mac address-table"

заменить на

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

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

1
ответ дан 4 December 2019 в 16:13

Теги

Похожие вопросы