답변:
원하는 형식으로 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
첫 번째 열은 개수를 나타냅니다.
에서 위키 피 디아
리눅스에서
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.