netstat -np와 유사한 명령이지만 상태 및 PID별로 그룹화되어 있습니까?

netstat -np와 유사한 명령이지만 상태 및 PID별로 그룹화되어 있습니까?

netstat -np유사하지만 그룹화된 명령이 있습니까?상태그리고PID?

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

처럼,

102 squid ESTABLISHED
32 httpd ESTABLISHED

RHEL5를 사용하고 있습니다.

답변1

원하는 형식으로 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

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

답변2

~에서위키피디아

Linux에서 netstat("net-tools"의 일부)는더 이상 사용되지 않음ss, (iproute2의 일부)를 대신 사용해야 합니다.

이것네트워크 도구이 패키지는 10년 넘게 Linux에서 출시되지 않았습니다. 끊임없이 진화하는 커널 통신 인터페이스를 관리하고 모니터링하도록 설계된 프로그램 모음의 경우 업데이트 없이는 오랜 시간이 걸립니다. 특히 실제로 인터넷을 실행하는 커널에 대해 이야기할 때는 더욱 그렇습니다.

다행히도 적극적으로 유지 관리되고 있습니다.IP 경로 2패키지 - 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.

답변3

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

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

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

tcp LISTEN -
tcp LISTEN -
tcp ESTABLISHED 2084/firefox
tcp ESTABLISHED 2084/firefox
tcp6 LISTEN -

답변4

도움을 주시면 정말 감사하겠습니다. 이제 협력할 차례입니다.

netstat -tun | grep 1521 | awk '{print $6}' | uniq -c

결과: 여기에 이미지 설명을 입력하세요.

관련 정보