помогите с регэкспом

YUAL

Есть две строки.
10.73.0.66 [-] - - [12/Nov/2012:02:01:21 +0400] - POST /smarttube/master/spine/soap/SdpOssService HTTP/1.1 "500" 490 "-" "JAX-WS RI 2.1.6 in JDK 6" "192.168.202.18:51000" 8097 "10.68.15.17:8097" 0.066 0.066 -
Это
192.168.209.166 [10.7.1.63] - 00:02:02:27:4c:1d [12/Nov/2012:00:35:33 +0600] BACKEND GET /smarttube/master/spine/services/ncdxml/ServiceAccount/get_status?serviceAccountNumber=77000169 HTTP/1.0 "504" 176 "-" "Mozilla/5.0" "127.0.0.1:51000, 127.0.0.1:51000" 9080 "master" 10.031 5.000, 5.000 -

обе попадают под regexp в перловом формате
HTTP/1\.[01] \"5[0-9][0-9]\"

Надо доработать этот регексп так, чтоб если в строке есть фраза SdpOssService, то строка под регексп не попадала.
по идее надо что-то типа
(?<! SdpOssService)HTTP/1\.[01] \"5[0-9][0-9]\"
но этот регэксп всё равно засчитывает обе строки.

artimon

Обязательно одной регуляркой?

PooH

лог апача парсишь что ли?

YUAL

нгинкса. и да надо обязательно одним. иначе надо немного переписывать мониторилку, а мне лень очень из-за одной регулярки и автора пинать хер теперь запинаешь.

artimon

~/tmp$ cat log.txt 
10.73.0.66 [-] - - [12/Nov/2012:02:01:21 +0400] - POST /smarttube/master/spine/soap/SdpOssService HTTP/1.1 "500" 490 "-" "JAX-WS RI 2.1.6 in JDK 6" "192.168.202.18:51000" 8097 "10.68.15.17:8097" 0.066 0.066 -
Это
192.168.209.166 [10.7.1.63] - 00:02:02:27:4c:1d [12/Nov/2012:00:35:33 +0600] BACKEND GET /smarttube/master/spine/services/ncdxml/ServiceAccount/get_status?serviceAccountNumber=77000169 HTTP/1.0 "504" 176 "-" "Mozilla/5.0" "127.0.0.1:51000, 127.0.0.1:51000" 9080 "master" 10.031 5.000, 5.000 -
~/tmp$ grep -P '(?<!SdpOssService )HTTP/1\.[01] "5[0-9][0-9]"' log.txt
192.168.209.166 [10.7.1.63] - 00:02:02:27:4c:1d [12/Nov/2012:00:35:33 +0600] BACKEND GET /smarttube/master/spine/services/ncdxml/ServiceAccount/get_status?serviceAccountNumber=77000169 HTTP/1.0 "504" 176 "-" "Mozilla/5.0" "127.0.0.1:51000, 127.0.0.1:51000" 9080 "master" 10.031 5.000, 5.000 -

А может проще nginx настроить, что бы писал в разые логи?

Fragaria

Может из-за пробела не срабатывает?
(?<! SdpOssService\s)HTTP/1\.[01] \"5[0-9][0-9]\"

UPD опередили

YUAL

Ну такая херь наблюдается на единственном сервере, а конфиг нгинкса одинаковый в этой части у более 30 серверов.
Короче городить костыль лучше всего на этом участке мониторинга. по идее можно напилить правильный регэксп, но у меня не получается.

YUAL

grep -P '(?<!SdpOssService )HTTP/1\.[01] "5[0-9][0-9]"' log.txt
спасибо вроде пашет
Оставить комментарий
Имя или ник:
Комментарий: