Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Сбор статистики

Ответить
Настройки темы
CMD/BAT - [решено] Сбор статистики

Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Добрый день!

Второй день бьюсь над простеньким скриптом и никак не могу побороть, решил обратить за помощью к умным людям.

И так суть такова:

Есть сетевой запрос по 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
[ 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
Все мои попытки привели к такому варианту, но записывает одни и те же значения в файл(((

Код: Выделить весь код
del Counter.txt

for /F "EOL=; TOKENS=*" %%i in (ip_printers.txt) do (D:\SNMPWalk\Snmpget.exe -r:%%i -o:.1.3.6.1.2.1.43.10.2.1.4.1.1 > r.txt

    for /f "usebackq tokens=*" %%a in ("r.txt") do (set %%a)

echo %%i=%Value% >> Counter.txt
    
)
Сильно не пинайте, я с этим делом впервые сталкиваюсь(

Отправлено: 12:15, 24-12-2014

 

Ветеран


Сообщения: 1758
Благодарности: 966

Профиль | Цитировать


Как выглядит ip_printers.txt ?

Отправлено: 12:58, 24-12-2014 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Выглядит так:

192.168.1.1
192.168.1.2
192.168.1.3

Отправлено: 13:11, 24-12-2014 | #3


Ветеран


Сообщения: 1758
Благодарности: 966

Профиль | Цитировать


KAPMAHOK, Попробуйте так, не проверял:
Код: Выделить весь код
@echo off
setlocal

for /f %%i in (ip_printers.txt) do call:1 %%i
goto:eof

:1
for /f "skip=3" %%i in (' Snmpget.exe -r:%1 -o:.1.3.6.1.2.1.43.10.2.1.4.1.1 ') do 1>nul set "%%i"
1>>counter.txt echo %1=%value%
Пути к файлам откорректируйте сами.
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:26, 24-12-2014 | #4


Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Вот, спасибо))) То что надо!!!

Ой а как в конце добавить отсылку на почту, но чтобы она не повторялась, после каждой записи в файл, а только после завершения цикла отправила файл с помощью blat.exe?

Последний раз редактировалось KAPMAHOK, 24-12-2014 в 14:27.


Отправлено: 13:40, 24-12-2014 | #5


Ветеран


Сообщения: 1758
Благодарности: 966

Профиль | Цитировать


Цитата KAPMAHOK:
как в конце добавить отсылку на почту »
Добавить команду blat:
Код: Выделить весь код
....
for /f %%i in (ip_printers.txt) do call:1 %%i
blat бла-бла-бла -attach "C:\Folder\Folder\counter.txt"
goto:eof
.....
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:59, 24-12-2014 | #6


Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


Приветствую.

Совсем недавно решал точно такую же задачу с опросом из списка через 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, 25-12-2014 в 10:52.


Отправлено: 10:08, 25-12-2014 | #7


Ветеран


Сообщения: 1758
Благодарности: 966

Профиль | Цитировать


STLK,
Цитата STLK:
set "%Failed" 1>nul »
Ну так здесь должна быть переменная указанная на выходе Snmpget.exe. Т.е. получаются три переменные %OID%, %Type% и %Value%, а Failed там взяться не откуда:
Код: Выделить весь код
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"
echo %OID%
echo %Type%
echo %Value%
1>nul здесь подавляет вывод всех переменных команды set
Цитата:
Кстати если указать параметр -q то snmpget выдаст результат в одну строчку и тогда не нужен "skip=3"
У меня нет этой утилиты, ориентировался на приведенный KAPMAHOK вывод ее на консоль.

Отправлено: 11:09, 25-12-2014 | #8


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Там же в выводе ссылка на сайт приведена: SnmpGet.zip (143KB).

Отправлено: 14:06, 25-12-2014 | #9


Ветеран


Сообщения: 1758
Благодарности: 966

Профиль | Цитировать


Iska, Подозреваю, что она бесполезна без принтера

Отправлено: 14:25, 25-12-2014 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Сбор статистики

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход