netstat -np와 유사하지만 상태 및 PID별로 그룹화 된 명령?


9

상태PIDnetstat -np 별로 유사 하지만 그룹화 된 명령이 있습니까?

프로그램별로 그룹화 된 특정 상태의 현재 서버 연결 수를 알고 싶습니다.

비슷하다,

102 squid ESTABLISHED
32 httpd ESTABLISHED

RHEL5를 사용합니다.

답변:


11

원하는 형식으로 sort출력을 재구성하는 데 사용할 수 있습니다 netstat.

$ netstat -anpt 2>&1 | tail -n +5 | sort -k7,7 -k 6,6

그러면 7 번째 열 (프로세스 이름 / PID)과 상태 (ESTABLISHED, LISTEN 등)가 먼저 출력됩니다.

참고 : 명령의 첫 번째 부분은 netstat -anpt 2>&1 | tail -n +5 ..STDOUT에서 발생할 수있는 모든 출력을 STDIN으로 보낸 다음 netstat관심없는 보일러 플레이트 출력 인 처음 5 줄을 잘라냅니다 .

$ netstat -anpt 2>&1 | tail -n +5 | sort -k7,7 -k 6,6
tcp        0      0 192.168.1.20:49309      192.168.1.103:631       ESTABLISHED 2077/gnome-settings 
tcp        0      0 192.168.1.20:38393      204.62.14.135:443       ESTABLISHED 2260/mono           
tcp        0      0 192.168.1.20:39738      74.125.192.125:5222     ESTABLISHED 2264/pidgin         
tcp        0      0 192.168.1.20:40097      87.117.201.130:6667     ESTABLISHED 2264/pidgin         
tcp        0      0 192.168.1.20:53920      217.168.150.38:6667     ESTABLISHED 2264/pidgin         
...
tcp        1      0 192.168.1.20:50135      190.93.247.58:80        CLOSE_WAIT  24714/google-chrome 
tcp        1      0 192.168.1.20:44420      192.168.1.103:631       CLOSE_WAIT  24714/google-chrome 
tcp        0      0 192.168.1.20:36892      74.125.201.188:5228     ESTABLISHED 24714/google-chrome 
tcp        0      0 192.168.1.20:43778      74.125.192.125:5222     ESTABLISHED 24714/google-chrome 
tcp        0      0 192.168.1.20:33749      198.252.206.140:80      ESTABLISHED 24714/google-chrome 
...

당신과 같은 다양한 도구를 사용하여 수를 얻기 위해 유사한 방법을 사용할 수 있습니다 wc또는 uniq -c.

출력 변경

실제로 다음과 같은 결과를 얻으려면 netstat:

102 squid ESTABLISHED
32 httpd ESTABLISHED

awk&를 사용하여 추가 슬라이싱 및 다이 싱을 수행 할 수 있습니다 sed. 이것은 더 콤팩트하게 만들 수 있지만 시작하고 작업을 수행해야합니다.

$ netstat -anpt 2>&1 | tail -n +5 | awk '{print $7,$6}' | sort -k1,1 -k3,3 \
    | sed 's#/# #' | column -t
2264   pidgin          ESTABLISHED
2264   pidgin          ESTABLISHED
24714  google-chrome   CLOSE_WAIT
24714  google-chrome   CLOSE_WAIT
24714  google-chrome   ESTABLISHED
24714  google-chrome   ESTABLISHED
...
24714  google-chrome   ESTABLISHED
26358  ssh             ESTABLISHED
26358  ssh             ESTABLISHED
26358  ssh             ESTABLISHED
26358  ssh             LISTEN
26358  ssh             LISTEN
26358  ssh             LISTEN

참고 : column -t 모든 출력을 멋진 열에 맞추십시오.

연결 수

마지막으로 발생 횟수를 계산하는 관점에서 원하는 것을 수행하십시오.

$ netstat -anpt 2>&1 | tail -n +5 | awk '{print $7,$6}' | sort -k1,1 -k3,3 \
    | sed 's#/# #' | column -t | uniq -c
  6 -      LISTEN
  8 -      TIME_WAIT
  1 2077   gnome-settings  ESTABLISHED
  1 2260   mono            ESTABLISHED
 10 2264   pidgin          ESTABLISHED
  2 24714  google-chrome   CLOSE_WAIT
 27 24714  google-chrome   ESTABLISHED
  3 26358  ssh             ESTABLISHED
  4 26358  ssh             LISTEN
  1 26359  ssh             ESTABLISHED
  4 3042   thunderbird     ESTABLISHED
  1 32472  monodevelop     ESTABLISHED
  2 32472  monodevelop     LISTEN
  1 32533  mono            ESTABLISHED
  1 32533  mono            LISTEN
  1 3284   monodevelop     LISTEN
  1 3365   mono            LISTEN
  1 4528   mono            LISTEN
  1 8416   dropbox         ESTABLISHED
  1 8416   dropbox         LISTEN

첫 번째 열은 개수를 나타냅니다.


자세한 답변을 주셔서 감사합니다-15 명의 담당자가있을 때 투표하겠습니다
Kingo

5

에서 위키 피 디아

리눅스에서 netstat( "그물 도구"의 일부)되어 사용되지 않는 , ss(iproute2를의 일부)를 대신 사용해야합니다.

그물 도구 패키지 10 년 이상에 리눅스 버전을 볼 수 없습니다. 끊임없이 진화하는 커널의 통신 인터페이스를 관리하고 모니터링하도록 설계된 프로그램 제품군에 대한 업데이트 없이는 특히 오랜 시간이 걸렸습니다. 특히 인터넷을 실제로 실행하는 커널에 대해 이야기 할 때는 더욱 그렇습니다.

고맙게도 , 유틸리티 를 포함하여 적극적으로 관리되는 iproute2 패키지가 있습니다 ss.

함께 ss하면 당신이 같은 요청 일을 수행 할 수 있습니다

ss -np state ESTABLISHED

부터 man ss:

#USAGE EXAMPLES
   ss -t -a
#          Display all TCP sockets.
#
   ss -t -a -Z
#          Display all TCP sockets with process SELinux
#          security contexts.
#
   ss -u -a
#          Display all UDP sockets.
#
   ss -o state established '( dport = :ssh or sport  =   :ssh )'
#          Display all established ssh connections.
#
   ss -x src /tmp/.X11-unix/*
#          Find  all  local  processes  connected  to X server.
#
   ss -o state fin-wait-1 '( sport = :http or sport  = :https )' dst 193.233.7/24
#          List all the tcp sockets in state FIN-WAIT-1
#          for our apache to network  193.233.7/24  and
#          look at their timers.

0

netstat, column 및 awk를 사용할 수 있습니다.

netstat -anpt | column -t | awk '{print $1,$6,$7}'

첫 번째, 여섯 번째 및 일곱 번째 열이 인쇄됩니다.

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