Je veux savoir combien de personnes sont connectées à mon serveur. Puisque je fais des applications de comètes, c'est important
Il y a environ un million de façons de le faire, mais:
netstat | grep http | wc -l
Gardez à l'esprit que http est un protocole sans état. Chaque ligne peut représenter un client ouvrant plusieurs sockets pour saisir différents fichiers (css, images, etc.) qui resteront pendant un certain temps dans un état timewait.
Voici quelques commandes de netstat à l'aide desquelles vous pouvez vérifier le nombre de connexions d'un serveur.
Pour afficher toutes les connexions Internet actives aux serveurs, seules les connexions établies sont incluses.
netstat -na
Pour afficher uniquement les connexions Internet actives au serveur sur le port 80 et trier les résultats, laissez reconnaître de nombreuses connexions provenant d'une seule IP
netstat -an | grep :80 | sort
Pour afficher la liste de toutes les adresses IP impliquées au lieu de simplement compter.
netstat -n -p | grep SYN_REC | sort -u
Si votre serveur Web est Apache, vous pouvez également utiliser la page server-status (après l'avoir activé).
Je sais que c'est une vieille question, mais je l'ai trouvée en cherchant un moyen ordonné de compter toutes les connexions entrantes vers un port donné. Le problème avec une recherche globale d'un port est que vous récupérerez également les connexions sortantes, faussant vos numéros.
Par exemple:
tcp 0 0 10.224.38.158:8080 10.225.239.6:38194 ESTABLISHED
tcp 0 0 10.224.38.158:8080 10.225.239.6:56825 ESTABLISHED
tcp 0 0 10.224.38.158:51512 10.226.194.28:8080 ESTABLISHED
tcp 0 0 10.224.38.158:51960 10.226.194.28:8080 TIME_WAIT
tcp 0 0 10.224.38.158:46937 10.226.194.28:8080 ESTABLISHED
tcp 0 0 10.224.38.158:51331 10.226.194.28:8080 TIME_WAIT
tcp 0 0 10.224.38.158:8080 10.225.239.6:29634 ESTABLISHED
Un grep aveugle -c ou awk | wc -l retournerait "7", mais il n'y a en fait que "3" connexions entrantes. Quoi qu'il en soit, je n'ai pas trouvé de moyen gracieux de le faire, et mon awk-fu n'est pas le cas, mais j'ai finalement opté pour netstat -an, utiliser awk pour imprimer uniquement la colonne "adresse locale" et compter les instances de la port que je recherche.
netstat -an | grep -c 8080
SORTIE: 91
netstat -an | awk '{print $4}' | grep -c 8080
SORTIE: 31
Donc, 31 sockets connectés sur le port 8080. J'espère que ça aide. Si quelqu'un connaît une manière plus concise de le faire, alors partagez-la.