Netstat -np के समान कमांड लेकिन राज्य और PID द्वारा समूहीकृत?


9

क्या राज्य और PIDnetstat -np द्वारा समूहीकृत लेकिन एक आदेश के समान है ?

मैं प्रोग्राम द्वारा समूहीकृत एक विशेष राज्य में सर्वर कनेक्शन की वर्तमान संख्या जानना चाहता हूं।

के समान,

102 squid ESTABLISHED
32 httpd ESTABLISHED

मैं RHEL5 का उपयोग करता हूं।

जवाबों:


11

आप अपनी पसंद के किसी भी प्रारूप में sortआउटपुट को पुनर्गठित करने के लिए उपयोग कर सकते हैं netstat

$ netstat -anpt 2>&1 | tail -n +5 | sort -k7,7 -k 6,6

यह 7 वें कॉलम का उपयोग करके आउटपुट को क्रमबद्ध करेगा (प्रक्रिया नाम / PID) जिसके बाद राज्य (ESTABLISHED, LISTEN, आदि) होगा।

नोट: कमांड का पहला भाग, netstat -anpt 2>&1 | tail -n +5 ..उन सभी आउटपुट को निर्देशित करेगा जो STDOUT पर STDIN के रूप में हो सकते हैं और फिर पहले 5 लाइनों को काट सकते हैं जो बॉयलरप्लेट आउटपुट हैं netstatजिसमें से हम निर्बाध हैं।

उदाहरण

$ 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 
...

आप इस तरह के रूप में विभिन्न उपकरणों का उपयोग करने में गिना जाता है पाने के लिए एक समान दृष्टिकोण का उपयोग कर सकते wcया uniq -c

आउटपुट बदलना

यदि आप वास्तव में इस तरह का उत्पादन प्राप्त करना netstatचाहते हैं:

102 squid ESTABLISHED
32 httpd ESTABLISHED

आप का उपयोग कर कुछ आगे टुकड़ा करने की क्रिया और dicing कर सकते हैं awkऔर sed। इसे और अधिक कॉम्पैक्ट बनाया जा सकता है, लेकिन आपको शुरुआत करनी चाहिए और काम करना चाहिए।

$ 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

नोट: column -t बस अच्छे कॉलम में सभी आउटपुट संरेखित करता है।

कनेक्शन की गिनती

अंत में क्या आप घटनाओं के मिलान के संदर्भ में करना चाहते हैं:

$ 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

पहला कॉलम मायने रखता है।


इस तरह के एक विस्तृत जवाब के लिए धन्यवाद - जब मैं 15 प्रतिनिधि के साथ मतदान करूंगा
किंगो

5

से विकिपीडिया

लिनक्स पर, netstat("नेट-टूल्स" का हिस्सा ) पदावनत किया जाता है , ss(iproute2 का हिस्सा) इसके बजाय उपयोग किया जाना चाहिए।

नेट उपकरण पैकेज एक दशक से अधिक में एक Linux रिलीज नहीं देखा गया है। एक लंबे समय से विकसित कर्नेल के संचार इंटरफेस का प्रबंधन और निगरानी करने के लिए डिज़ाइन किए गए प्रोग्राम सूट के लिए एक अपडेट के बिना जाने के लिए एक लंबा समय है - खासकर जब आप उस कर्नेल के बारे में बात कर रहे हैं जो व्यावहारिक रूप से इंटरनेट चलाता है।

शुक्र है कि हालांकि, सक्रिय रूप से बनाए रखा iproute2 पैकेज है - जिसमें ssउपयोगिता भी शामिल है ।

ssआप जिस चीज़ की माँग कर सकते हैं, उसके साथ कर सकते हैं:

ss -np state ESTABLISHED

से 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.

0

आप netstat, कॉलम और awk का उपयोग कर सकते हैं:

netstat -anpt | column -t | awk '{print $1,$6,$7}'

यह पहले, छठे और सातवें कॉलम को प्रिंट करता है।

tcp LISTEN -
tcp LISTEN -
tcp ESTABLISHED 2084/firefox
tcp ESTABLISHED 2084/firefox
tcp6 LISTEN -
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.