|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Сбор статистики |
|
CMD/BAT - [решено] Сбор статистики
|
Новый участник Сообщения: 3 |
Добрый день!
Второй день бьюсь над простеньким скриптом и никак не могу побороть, решил обратить за помощью к умным людям. И так суть такова: Есть сетевой запрос по Snmp на определённый список адресов сетевых принтеров, который показывает счётчик страниц. Нужно в текстовый файл записать значения вида ip address=счётчик страниц! запрос вида Выдаёт SnmpGet v1.01 - Copyright (C) 2009 SnmpSoft Company [ More useful network tools on http://www.snmpsoft.com ] OID=.1.3.6.1.2.1.43.10.2.1.4.1.1 Type=Counter32 Value=237326 Сильно не пинайте, я с этим делом впервые сталкиваюсь( |
|
Отправлено: 12:15, 24-12-2014 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать 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. как вписать результаты в одну строку? |
Отправлено: 14:41, 25-12-2014 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 1758
|
STLK, Если верно понял:
@echo off setlocal for /f %%i in (ip_printers.txt) do call:1 %%i goto:eof :1 for %%i in (.1.3.6.1.2.1.43.10.2.1.4.1.1 .1.3.6.1.2.1.43.10.2.1.4.1.2) do ( for /f "skip=3" %%j in (' Snmpget.exe -r:%1 -o:%%i ') do 1>nul set "%%i_%%j" ) 1>>counter.txt echo %1;%.1.3.6.1.2.1.43.10.2.1.4.1.1_value%;%.1.3.6.1.2.1.43.10.2.1.4.1.2_value% |
Отправлено: 15:58, 25-12-2014 | #12 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Foreigner:
![]() P.S. Я бы всё ж таки с «-q» попробовал, для простоты. |
|
Отправлено: 18:24, 25-12-2014 | #13 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Тут возник один момент. Если IP доступен, то значение %value% прописывается в итоговый отчет без проблем.
Но, если связи нет, то вместо значения будет ошибка %Failed to get value of SNMP variable. Timeout. В этом случае скрипт оставляет строку пустой. И если этот IP не первый в списке, запишет в итоговый отчет значение %value% от предидущего IP. |
Отправлено: 17:21, 26-12-2014 | #14 |
Ветеран Сообщения: 1758
|
|
Отправлено: 17:47, 26-12-2014 | #15 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Foreigner, Супер!
Собрал в один скрипт. Все работает! По каждому IP выводит в отчет два параметра через ; или Timeout если нет ответа Вот только вариант с проверкой пингом боюсь в моей ситуации не подойдет. канал связи настолько не стабилен, что за время пока выполняется команда, может отвалиться соединение. Т.е. пинг отработал а snmpget уже нет =( Заметил это прогнав скрипт на большом списке IPшников, через удаленное соединение. Как сделать проверку- есть ли в %value% текст ошибки (%Failed to get value of SNMP variable. Timeout.) и повторно запускать цикл опроса. Так подряд 2-3 раза, и если все равно Timeout - писать в отчет что "не получилось" и тогда уже переходить к следующему IP ? |
Отправлено: 18:49, 29-12-2014 | #16 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата STLK:
Цитата STLK:
![]() |
||
Отправлено: 19:19, 29-12-2014 | #17 |
Ветеран Сообщения: 1758
|
|
Отправлено: 19:54, 29-12-2014 | #18 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Foreigner:
![]() |
|
Отправлено: 03:25, 30-12-2014 | #19 |
Новый участник Сообщения: 1
|
Профиль | Отправить PM | Цитировать Foreigner, Добрый день! Ваш скрипт служил мне верой и правдой долгое время, собирал счетчики, хост нэймы, но появилась необходимость собрать mac-адреса. При записи в скрипт OID mac-адреса принтера случается проблема.
Mac адрес выглядит так 18:a9:05:fd:53:56 скрипт записывает в файл: Режим вывода команд на экран (ECHO) отключен. а в окне пишет Текст скрипта привожу ниже @echo off setlocal for /f %%i in (ip_printers.txt) do call:1 %%i goto:eof :1 1>nul ping -n 4 %1 || ( 1>>mac.txt echo ND ) :1 for %%i in (.1.3.6.1.4.1.11.2.4.3.1.23.0) do ( for /f "skip=3" %%j in (' Snmpget.exe -r:%1 -o:%%i ') do 1>nul set "%%i_%%j" ) 1>>mac.txt echo %.1.3.6.1.4.1.11.2.4.3.1.23.0_value% |
Отправлено: 15:40, 17-06-2016 | #20 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
2008 - [решено] Сбор статистики подключений пользователей через штатный VPN | Vanger69 | Windows Server 2008/2008 R2 | 6 | 09-07-2014 13:57 | |
Прочие - [решено] Сбор сетевой статистики для процесса | User001 | Программное обеспечение Windows | 3 | 12-02-2014 20:45 | |
2008 R2 - [решено] Сбор сетевой статистики для процесса | User001 | Windows Server 2008/2008 R2 | 6 | 04-02-2014 13:56 | |
Прочие - Сбор статистики использования ПО в сети | Pit_bul | Программное обеспечение Windows | 1 | 04-04-2012 17:35 | |
Интернет - Как предотвратить сбор статистики о системе при посещении веб-страниц? | mnbv | Хочу все знать | 7 | 11-12-2009 17:52 |
|