2012-09-18 5 views
1

저는 배쉬를 배우고 그것을 배울려고 노력했습니다. 나는 SRC IP를 뽑을 수와 파이프는 {여기에 IP}Bash Grep and Send

내가

sed -e 's/\([0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+\).*$/\1/' /var/log/messages 권리 같은 것을 사용하는 것이 -d CSF하는 방법

Sep 18 21:05:40 host kernel: Firewall: *Port Flood* IN=venet0 OUT= MAC= SRC=118.223.69.254 DST=10.0.0.1 LEN=40 TOS=0x00 PREC=0x00 TTL=244 ID=9398 PROTO=TCP SPT=9876 DPT=80 WINDOW=5840 RES=0x00 SYN URGP=0 

을 :

나는 다음이 ?

편집 : SPT= 이후

모두에 이름이 나는 그것을 당겨 방법 일부 IP를 잡을 수있다? 다음과 같은

+0

GREP와 SED를 원하셨습니까? "csf"란 무엇입니까? 어떤 시스템을 사용합니까? –

+1

Grap이 Grap이라고 생각하십니까? –

+0

예, grep. CSF는 IPTables와 같습니다. –

답변

2

뭔가 작업을해야합니다 :

sed -n 's/.*SRC=\([.0-9]*\).*/\1/p' /var/log/messages | xargs csf -d 

xargs은 명령에 표준 입력에서 인수를 추가합니다. 내 정규 표현식은 IP 주소 전후에 .*이라는 전체 행과 일치하므로 대체 할 때 IP 만 남게됩니다.

-n 옵션을 사용하고 을 sed 교체 끝에 추가하면 정규식과 일치하는 행만 인쇄됩니다.

+0

파일을 살펴볼 수있는 방법이 있습니까? 나는 1 개의 입구를 얻는 것처럼 보인다 / –

0

숨바꼭질, 그렙 (GNU의 GREP)와

2.10, 당신은 펄 호환 정규 표현식, Casse는 영향을받지 테스트 i 플래그 그냥 결과를 표시 할 수있는 o 플래그를 들어, P 플래그를 사용할 수 있습니다. 다음으로

, 난 유효한 IP에 대한 패턴을 설정하고 그렙 엉 펄 호환 -P 플래그 파일

ippattern="\b(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}\b([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])\b" 
grep -Pio "(?<=src=)$ippattern" /var/log/messages 

grep을 상기 (?<=XXXX)가 다시 참조되고 정규식에 의해 캡쳐되지 않는다. 우리 패턴이 XXXX 앞에 오길 바란다고했습니다. 물론 캡처하기 전에 패턴을 써야합니다.

ippattern은 유효한 IP 주소입니다. 모든 경우가 캡처됩니다.

희망이 도움이