![]() |
Сбор статистики
Добрый день!
Второй день бьюсь над простеньким скриптом и никак не могу побороть, решил обратить за помощью к умным людям. И так суть такова: Есть сетевой запрос по Snmp на определённый список адресов сетевых принтеров, который показывает счётчик страниц. Нужно в текстовый файл записать значения вида ip address=счётчик страниц! запрос вида Код:
Snmpget.exe -r:192.168.1.1 -o:.1.3.6.1.2.1.43.10.2.1.4.1.1 Код:
SnmpGet v1.01 - Copyright (C) 2009 SnmpSoft Company Код:
del Counter.txt |
Как выглядит ip_printers.txt ?
|
Выглядит так:
192.168.1.1 192.168.1.2 192.168.1.3 |
KAPMAHOK, Попробуйте так, не проверял:
Код:
@echo off |
Вот, спасибо))) То что надо!!!
Ой а как в конце добавить отсылку на почту, но чтобы она не повторялась, после каждой записи в файл, а только после завершения цикла отправила файл с помощью blat.exe? |
Цитата:
Код:
.... |
Приветствую.
Совсем недавно решал точно такую же задачу с опросом из списка через snmpget.exe, записью результата в csv таблицу и отпправкой с использованием blat. У меня правда скрипт гораздо топорней. Просто в лоб по каждому ip. Вот хочу оптимизировать. Очень понравилось лаконичное решение от Foreigner, Но когда пробую у себя, пишет такую ошибку set "%Failed" 1>nul Environment variable "%Failed not defined причем "%Failed это начало строки ответа snmpget.exe в случае если нет соединения. Такое бывает при опросе это норм. В итоговом файле (counter.txt) просто 192.168.1.1= Своими копеечными познаниями bat, понимаю что переменная не определена, но вот как это исправить? Кстати если указать параметр -q то snmpget выдаст результат в одну строчку и тогда не нужен "skip=3" |
STLK,
Цитата:
Код:
for /f "skip=3" %%i in (' Snmpget.exe -r:192.168.1.1 -o:.1.3.6.1.2.1.43.10.2.1.4.1.1 ') do 1>nul set "%%i" Цитата:
|
Там же в выводе ссылка на сайт приведена: SnmpGet.zip (143KB).
|
Iska, Подозреваю, что она бесполезна без принтера
|
Foreigner,
Спасибо. Работает. Подскажите еще как можно реализовать опрос не по одному а нескольким значениям OID ? И результат дописывать в ту же строку? Т.е. в итоговом файле counter.txt в одну строку через точку с запятой должны быть указаны: IP (переменная %1 в подпрограмме :1); значение %value% от выполнения команды Snmpget.exe -r:%1 -o:.1.3.6.1.2.1.43.10.2.1.4.1.1 ; и тоже значение %value% но с другим -o Все что приходит в голову - это по очереди выполнять запросы с разными OID. как вписать результаты в одну строку? |
STLK, Если верно понял:
Код:
@echo off |
Цитата:
P.S. Я бы всё ж таки с «-q» попробовал, для простоты. |
Тут возник один момент. Если IP доступен, то значение %value% прописывается в итоговый отчет без проблем.
Но, если связи нет, то вместо значения будет ошибка %Failed to get value of SNMP variable. Timeout. В этом случае скрипт оставляет строку пустой. И если этот IP не первый в списке, запишет в итоговый отчет значение %value% от предидущего IP. |
STLK, Пропинговать?
Код:
.... |
Foreigner, Супер!
Собрал в один скрипт. Все работает! По каждому IP выводит в отчет два параметра через ; или Timeout если нет ответа Вот только вариант с проверкой пингом боюсь в моей ситуации не подойдет. канал связи настолько не стабилен, что за время пока выполняется команда, может отвалиться соединение. Т.е. пинг отработал а snmpget уже нет =( Заметил это прогнав скрипт на большом списке IPшников, через удаленное соединение. Как сделать проверку- есть ли в %value% текст ошибки (%Failed to get value of SNMP variable. Timeout.) и повторно запускать цикл опроса. Так подряд 2-3 раза, и если все равно Timeout - писать в отчет что "не получилось" и тогда уже переходить к следующему IP ? |
Цитата:
Цитата:
|
Iska, Согласен, плюс лучше проверять пинг через поиск "TTL"
Код:
|
Цитата:
|
Foreigner, Добрый день! Ваш скрипт служил мне верой и правдой долгое время, собирал счетчики, хост нэймы, но появилась необходимость собрать mac-адреса. При записи в скрипт OID mac-адреса принтера случается проблема.
Mac адрес выглядит так 18:a9:05:fd:53:56 скрипт записывает в файл: Режим вывода команд на экран (ECHO) отключен. а в окне пишет Код:
переменная среды .1.3.6.1.4.1.11.2.4.3.1.23.0 _%Failed не определена Код:
@echo off |
Время: 11:35. |
Время: 11:35.
© OSzone.net 2001-