Respuestas:
Puede utilizar sort
para reorganizar la salida de netstat
en cualquier formato que desee.
$ netstat -anpt 2>&1 | tail -n +5 | sort -k7,7 -k 6,6
Esto ordenará la salida usando primero la séptima columna (el nombre del proceso / PID) seguido del estado (ESTABLECIDO, ESCUCHAR, etc.).
NOTA: La primera parte del comando, netstat -anpt 2>&1 | tail -n +5 ..
dirigirá toda la salida que puede ocurrir en STDOUT a STDIN también y luego cortará las primeras 5 líneas que son salidas repetitivas de las netstat
cuales no estamos interesados.
$ 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
...
Puede utilizar un enfoque similar para obtener los recuentos utilizando diversas herramientas como wc
o uniq -c
.
Si realmente desea obtener el resultado de netstat
verse así:
102 squid ESTABLISHED
32 httpd ESTABLISHED
Puede cortar y cortar más en cubitos usando awk
& sed
. Esto puede hacerse más compacto, pero debería ayudarlo a comenzar y hacer el trabajo.
$ 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
NOTA: column -t
simplemente alinea toda la salida en buenas columnas.
Finalmente, para hacer lo que quiera en términos de contar las ocurrencias:
$ 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
La primera columna representa los recuentos.
de wikipedia
En Linux,
netstat
(parte de "net-tools") está en desuso ,ss
(parte de iproute2) debería usarse en su lugar.
El paquete de herramientas de red no ha visto una versión de Linux en más de una década. Eso es mucho tiempo sin una actualización para un conjunto de programas diseñado para administrar y monitorear las interfaces de comunicaciones de un núcleo en constante evolución, especialmente cuando se habla del núcleo que prácticamente ejecuta Internet.
Afortunadamente, existe el paquete iproute2 mantenido activamente , que incluye la ss
utilidad.
Con ss
usted puede hacer lo que pide como:
ss -np state ESTABLISHED
de 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.