@alxhtch

Как автоматизировать опрос маршрутизаторов с помощью скриптов?

Господа и дамы, доброго времени суток.

Довелось мне стать начинающим сетевиком по случайности (счастливой или нет — пока не понял) в одной довольно большой компании. Заранее предупрежу — опыт практически нулевой, поэтому возможны очевидные для бывалых и опытных ошибки в логике вопроса. Прошу не серчать.
Встала перед мной такая задача — во владении и управлении нашего отдела телекоммуникаций порядка 1000 маршрутизаторов, разбросанных в радиусе 200-300км, Cisco 2811 и Huawei S2700, за половиной из них стоит еще и по свитчу. Из ТЗ было выяснено, что необходимо выяснить конкретно за какими из маршрутизаторов стоят свитчи, сравнить с ведомостью. Такая, своего рода, инвентаризация. Физически, объехав точки, выяснить это, разумеется, не представляется возможным.
Из того, что дано: таблицы с пулами адресов всех маршрутизаторов, PuTTy и надежда начальника на мои прямые руки.
Ручное подключение рассматривалось изначально, но от монотонности и однообразия действий я начал сходить с ума уже в конце первого дня. Последовательность действий была такова — Через путти подключиться к маршрутизатору, командами запросить количество активных портов и количество машин в сети. Исходя из этого соотношения становилось понятно, если на маршрутизаторе один активный порт, а машин несеколько, то значит, что за ним стоит свитч. Смотришь потом ведомость — свитч в ней есть, значит все хорошо. Если свитча после маршутизатора нет, а в ведомости есть — плохо. Отмечаешь и пошел дальше. Вроде все просто и логично, пока не упираешься в общую цифру повторов этой комбинации действий.
После усердного поиска в том числе в иноязычном сегменте паутины, наткнулся на пост с вариантом написания скрипта вроде такого:

for /f %%i in (devices.txt) do c:\putty\plink.exe cisco@%%i -pw
P@55W0rD! -m command.txt >> log.txt

где в devices.txt хранятся все пулы в столбик, cisco — логин, P@55W0rD! — пароль, в command.txt команды в столбик (в моем случае две — show arp или display arp, show ip interface brief или display vlan brief, в зависимости, циска это или хуавей), log.txt это собственно файл для вывода всего необходимого. Закидываю в батник, запускаю. И, конечно же, если б это работало, то этого длинного поста не было. Не проходят команды, «Line has invalid autocommand» и все тут. Причем пулы из файла с девайсами выдергиваются корректно, хотя два текстовых файла были созданы один за другим, и логи пишутся.

А теперь, уважаемые знатоки, вопрос.

В комментариях у этого поста много критики, но вероятно тут мне сможете помочь? То, что я хочу сделать, вообще выполнимо? И если да, иду ли я правильным путем? Приму все конструктивные советы, адекватную критику и помощь.
Спасибо!
  • Вопрос задан
  • 227 просмотров
Пригласить эксперта
Ответы на вопрос 2
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Посоветую более подробно командовать plink-ом, а именно: указать аргумент -v, что-бы сообщения программы были по подробнее. Указать -l cisco, что бы уж точно логиниться как cisco. Не забыть указать протокол -telnet и порт -P 23 для точности желаемого коннекта.
Итого:
@echo off
for /f %%i in (devices.txt) do (
echo Fetching data from %%i...
c:\putty\plink.exe -telnet -P 23 -l cisco %%i -pw "P@55W0rD!" -m command.txt -v >>log.txt 2>&1
)
Ответ написан
gbg
@gbg Куратор тега Сетевое администрирование
Любые ответы на любые вопросы
У меня есть программа, которая может телнетом цепляться к циске, сгружать с нее таблицы ARP, сопоставлять их и рисовать схему сети с помощью graphviz. Могу исходники отдать, сейчас нет ресурсов на доработку. Лицензия MIT.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы