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.
Ejemplo
$ 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
.
Cambiar la salida
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.
Contando las conexiones
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
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:de
man ss
:fuente
Puede usar netstat, column y awk:
Esto imprime la primera, sexta y séptima columna.
fuente