Netstat 연속 새로 고침 (시계 출력 변경)


18

이 간단한 명령을 사용하여 데비안 서버에서 연결을 모니터링합니다 (최근 DoS 공격을 처리하기 위해).

netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

지속적으로 실행하려면 어떻게합니까? 따라서 분당 한 번 (또는 물론 주어진 시간) 새로 고쳐집니다. 나는 시계를 시도했다 :

watch -n 30 "netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n"

그러나 연결 수가 많은 멋진 목록의 출력을 다음과 같이 변경했습니다.

1 tcp        0  10015 [LOCAL IP]
...
1 Proto Recv-Q Send-Q Local Address           Foreign Address         State
1 Active Internet connections (w/o servers)

따라서 외부 IP가 표시되지 않습니다. 내가 놓친 것이 있습니까?

원래 출력 결과는 다음과 같습니다.

  2 [IP ADDRESS]
  4 [IP ADDRESS]
  4 [IP ADDRESS]
  4 [IP ADDRESS]
  7 [IP ADDRESS]
 16 [IP ADDRESS]
 71 [IP ADDRESS]

그리고 말할 때 [LOCAL IP]내 컴퓨터의 IP를 의미합니다.

내가 그것을 실행하면 -c그냥 멈 춥니 다.


루트 권한으로 시계를 실행하고 있습니까? 명령이 소리처럼 보이며 내 컴퓨터에서 어떻게 예상되는 것처럼 작동합니다. 없이 실행하면 주소가 인쇄되지 않으며 30 초 후에 오류 메시지가 인쇄 될 수 있습니다.

@StewartPlatt 루트에서 실행합니다. 원래 명령 출력을 추가했습니다. 문제는 내가 볼 때 IP 주소 광고 만 출력하고 나에게 연결된 IP는 전혀 출력하지 않는 것입니다.

답변:


22
netstat -c

문제를 오해하지 않은 경우 도움이 될 수 있습니다. -c는 --continuous를 나타냅니다.

편집 : 거기에 간다 :

watch -n 30 "netstat -ntu | awk '{print \$5}' | cut -d: -f1 | sort | uniq -c | sort -n"

$ 전에 \를 추가했습니다.


이미 시도했지만 죄송합니다. 질문에 이것을 지정하지 않았습니다. -c를 추가하면 정지됩니다.

나는 시계의 출력에서 ​​$ 5가 제거된다는 것을 깨달았다. 따옴표 문제가있을 수 있습니다. 나는 그것을 파고있다 ..

감사합니다. 시계에서 특수 문자를 빠져 나가는 방법에 대해 알아

1

60 초 동안 잠든 while 루프를 실행하십시오.

[root@host] $ while true
> do
> netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
> sleep 60
> done

60 초마다 동일한 출력을 제공합니다

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.