Нужна помошь в grep

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
bdv99
рядовой
Сообщения: 19
Зарегистрирован: 2009-07-02 10:35:43

Нужна помошь в grep

Непрочитанное сообщение bdv99 » 2010-11-12 9:23:21

Добрый день!
Вопрос состоит в следующем есть N количество строк нужно из этих строк выбрать те которые содержат в себе ip адрес и слово established и вывести их количество.
Написал такое выражение но в конце его работы выдается 0.

Код: Выделить всё

snmpwalk -v 1 -c public 172.24.202.62 tcpConnEntry | grep -E '172.24.202.62.777 established' -c 

Если писать так то значение выдает 0
Пробывал написать так но не уверен в его правильности

Код: Выделить всё

snmpwalk -v 1 -c Parameter 172.24.202.62 tcpConnEntry | grep 172.24.202.62.777 | grep established -c 
Что не так в этом выражении? Подскажите.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
dmtr
ст. прапорщик
Сообщения: 545
Зарегистрирован: 2009-11-06 22:01:34
Откуда: с Ростова

Re: Нужна помошь в grep

Непрочитанное сообщение dmtr » 2010-11-12 10:00:09

Код: Выделить всё

snmpwalk -v 1 -c Parameter 172.24.202.62 tcpConnEntry | grep 172.24.202.62.777
так вывод не пустой?
This game has no name. It will never be the same.

bdv99
рядовой
Сообщения: 19
Зарегистрирован: 2009-07-02 10:35:43

Re: Нужна помошь в grep

Непрочитанное сообщение bdv99 » 2010-11-12 11:10:41

с таким запросом вывод не пустой.
надо чтоб именно в сборке 172.24.202.62.777 established искало.
остановился пока на этом варианте

Код: Выделить всё

snmpwalk -v 1 -c Parameter 172.24.202.62 tcpConnEntry | grep 172.24.202.62.777 | grep established -c 
Есть еще один вопрос потом это надо полученное значение вывести на графиг MRTG. :smile:
написал так

Код: Выделить всё

#!/bin/sh
/usr/local/bin/snmpwalk -v 1 -c Parameter nt2.npp tcpConnEntry | grep 172.24.202.62.777 | grep established -c
#echo "Port Spir 777"

Код: Выделить всё

SetEnv[NT2.777]: MRTG_INT_IP="172.24.202.62" MRTG_INT_DESCR="Traffic statistics on NT2 Port 777"
Title[NT2.777]: Traffic statistics on Port 777
Target[NT2.777]: `/usr/local/www/data/mrtg/run/nt2777.sh`
MaxBytes[NT2.777]: 150000
MaxBytes2[NT2.777]: 150000
Unscaled[NT2.777]: dwmy
PageTop[NT2.777]: <H1>statistics on Port 777</H1>
Но данные пока 0))

bdv99
рядовой
Сообщения: 19
Зарегистрирован: 2009-07-02 10:35:43

Re: Нужна помошь в grep

Непрочитанное сообщение bdv99 » 2010-11-12 13:34:01

Все я разобрался во всем.Тему можно закрывать.

Аватара пользователя
FreeBSP
майор
Сообщения: 2020
Зарегистрирован: 2009-05-24 20:20:19
Откуда: Москва

Re: Нужна помошь в grep

Непрочитанное сообщение FreeBSP » 2010-11-12 13:54:19

хорошим тоном считается рассказать о том как решил проблему, чтобы люди вставшие на те же грабли знали как решить проблему
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!

Аватара пользователя
BlackCat
прапорщик
Сообщения: 469
Зарегистрирован: 2007-10-16 22:40:42

Re: Нужна помошь в grep

Непрочитанное сообщение BlackCat » 2010-11-15 23:51:53

bdv99 писал(а):Вопрос состоит в следующем есть N количество строк нужно из этих строк выбрать те которые содержат в себе ip адрес и слово established и вывести их количество.
Порядок "IP-адрес" "established" фиксированый?
bdv99 писал(а):Написал такое выражение но в конце его работы выдается 0.

Код: Выделить всё

snmpwalk -v 1 -c public 172.24.202.62 tcpConnEntry | grep -E '172.24.202.62.777 established' -c 
grep понял это выражение следующим образом: найти все строки содержащие подстроки "172.24.202.62.777" и "established" разделённые пробелом.
bdv99 писал(а):Пробывал написать так но не уверен в его правильности

Код: Выделить всё

snmpwalk -v 1 -c Parameter 172.24.202.62 tcpConnEntry | grep 172.24.202.62.777 | grep established -c 
Это как раз наиболее правильный вариант: найти все строки содержащие "172.24.202.62.777" и "established".
При фиксированом порядке в одно выражение это можно записать вот так:

Код: Выделить всё

grep "172[.]24[.]202[.]62[.]777.*established" -c
Обратите внимание на заключение точки в фигурные скобки, иначе она будет пониматься, как "любой символ".

bdv99
рядовой
Сообщения: 19
Зарегистрирован: 2009-07-02 10:35:43

Re: Нужна помошь в grep

Непрочитанное сообщение bdv99 » 2010-11-17 15:14:47

Сейчас опишу как решил проблему.
по поводу выражения в скрипте написал так

Код: Выделить всё

/usr/local/bin/snmpwalk -v 1 -c Parameter 172.24.202.62 tcpConnEntry | grep '172\.24\.202\.62.777.*established' -c 
затем написал конфиг мртг который строил графики по текущим значениям но так ка в мртг требовал 2 значения IN,OUT скрипт модернизировал таким образом

Код: Выделить всё

#!/bin/sh
/usr/local/bin/snmpwalk -v 1 -c Parameter 172.24.202.62 tcpConnEntry | grep '172\.24\.202\.62.777.*established' -c 
echo 0
После этого все заробатало но данные начали заносится в лог мртг но сам график не строился, немного покапался и нашел что в конфиге графика который необходимо вывести нужно дописать один параметр он отвечает за вывод текущего значения
вышло так

Код: Выделить всё

Target[777]: `/usr/local/www/data/mrtg/run/nt2777.sh`
Title[777]: Traffic statistics on  Port 777 Established 
PageTop[777]: <H1>statistics on Port 777 Established</H1>
MaxBytes[777]: 150000
ShortLegend[777]: c/s
YLegend[777]: Conns / Min
LegendI[777]: In
LegendO[777]: Out
Legend1[777]: New inbound connections
Legend2[777]: New outbound connections
Options[777]: growright,nopercent,perminute,gauge