Vous pouvez utiliser sort
pour réorganiser la sortie de netstat
dans n'importe quel format que vous aimez.
$ netstat -anpt 2>&1 | tail -n +5 | sort -k7,7 -k 6,6
Cela triera la sortie en utilisant d'abord la 7e colonne (le nom du processus / PID) suivi de l'état (ESTABLISHED, LISTEN, etc.).
REMARQUE: La première partie de la commande netstat -anpt 2>&1 | tail -n +5 ..
dirigera également toutes les sorties pouvant survenir sur STDOUT vers STDIN, puis coupera les 5 premières lignes qui sont des sorties standard netstat
qui ne nous intéressent pas.
Exemple
$ 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
...
Vous pouvez utiliser une approche similaire pour obtenir les chiffres à l'aide de divers outils tels que wc
ou uniq -c
.
Modification de la sortie
Si vous souhaitez vraiment obtenir le résultat suivant netstat
:
102 squid ESTABLISHED
32 httpd ESTABLISHED
Vous pouvez effectuer d'autres découpages et découpages en utilisant awk
& sed
. Cela peut être rendu plus compact, mais devrait vous permettre de démarrer et de faire le travail.
$ 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
REMARQUE: column -t
aligne simplement toutes les sorties dans de belles colonnes.
Compter les connexions
Enfin pour faire ce que vous voulez en termes de décompte des occurrences:
$ 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 première colonne représente les chiffres.
de wikipedia
Le package net-tools n'a pas vu de version Linux depuis plus d'une décennie. C'est une longue période sans mise à jour pour une suite de programmes conçue pour gérer et surveiller les interfaces de communication d'un noyau en constante évolution - en particulier lorsque vous parlez du noyau qui exécute pratiquement Internet.
Heureusement, il existe le package iproute2 activement maintenu - qui comprend l'
ss
utilitaire.Avec
ss
vous pouvez faire ce que vous demandez comme:de
man ss
:la source
Vous pouvez utiliser netstat, column et awk:
Cela imprime la première, la sixième et la septième colonne.
la source