Je veux utiliser Bash à Grep si un processus est écouté sur le port 80, mais je trébuche maintenant sur un autre numéro de port qui m'agace. Comment puis-je filtrer cela dans grep?
netstat -ant|grep LISTEN|grep 80|wc -l
6 Réponses :
Utiliser grep ": 80" code> au lieu de
Grep 80 code> p>
Pas besoin d'échapper au : code>. Ce n'est pas spécial dans Grep.
TA, réponse mise à jour. Je suis un peu un lâche comme celui-là - en cas de doute, évasion;)
Vous pouvez profiter du fait que les ports sont précédés d'un colon (comme de cette façon, vous n'appellez pas : 80 code>). La chose de jeûne serait alors quelque chose comme:
grep code> deux fois. En outre, Grep a la possibilité de compter des correspondances avec
-c code>, de sorte que vous pouvez l'utiliser au lieu de
wc code>: p>
Je regarde la sortie de ma commande netstat code> et voyez ceci:
$ netstat -ant | awk '$6 == "LISTEN" && $4 ~ /[^0-9]80$/' | wc -l
TCP 0 0 0.0.0.0:8080 0.0.0.0:* Écoute
NetStat -ant | awk '$ 6 == "Écoutez" && $ 4 ~ /(\.|\ :)8080$/' peut être meilleur
@DANZEN: Pas besoin d'échapper au côlon.
Mon netstat code> met une période et pas un côlon. Il suffit de changer la commande en
$ netstat -ant | Awk '$ 6 == "Écoutez" && $ 4 ~ /: 80 $ /' | WC -L code>. Cela devrait gérer le problème. Si vous avez fait ceci:
$ netstat -ant -ant | Awk '$ 6 == "Écoutez" && $ 4 ~ /[\.:]80$/' | wc -l code>, vous obtiendriez si
netstat code> utilise un côlon ou une période. En fait, voir l'appendice sur ma réponse.
au lieu de grepper la sortie de netstat code> - demandant plus d'informations que nécessaire, puis je supprime la majeure partie - demandez simplement
fuser code> quel processus a le processus Vous vous souciez d'OUVERT:
fuser -n tcp ,1.2.3.4,80
Tout à fait raison - cette réponse est donnée pour Linux (le système d'exploitation pour lequel la question est étiquetée).
Si vous voulez que ce soit plus robuste, vous pouvez faire
netstat -ant |egrep "^tcp +[[:digit:]]+ +[[:digit:]]+ +[[:digit:]\.]+\:80 +.*LISTEN *$"
La commande que vous recherchez est: Exemple: p> netstat -ntpl | Grep ': port' code>
Tout d'abord, merci pour la réponse. La prochaine fois qu'il vaut mieux ajouter un peu d'explication sur votre résultat, par exemple quelles sont les options, etc.