2008-09-19 12 views
85

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

lsof का उपयोग करने के कुछ सबसे आम और उपयोगी तरीके क्या हैं, और इसके लिए कमांड लाइन स्विच का उपयोग किस प्रकार किया जाता है?

उत्तर

10

lsof -i खुले नेटवर्क सॉकेट की एक सूची प्रदान करेगा। -n विकल्प DNS लुकअप को रोक देगा, जो उपयोगी है जब आपका नेटवर्क कनेक्शन धीमा या अविश्वसनीय है।

+3

'lsof -i' * केवल * आपको दिखाएगा कि आपके पास अपने नामस्थान में पहुंच है (और जिसे इंट्रोस्पेक्शन के माध्यम से" इंटरनेट "सॉकेट के रूप में माना जाता है, न कि किसी भी प्रकार की नेटवर्क सॉकेट)। अन्यथा प्रकार के 'सॉक' हैंडल सूची में दिखाई नहीं देंगे। –

10

क्या एक चल आवेदन फाइल या डेमॉन खुला है देखें:

lsof -p pid 

कहाँ पीआईडी ​​ आवेदन या डेमॉन की प्रक्रिया आईडी है।

17
lsof -i :port 

आपको बताएगा कि एक विशिष्ट बंदरगाह पर कौन से प्रोग्राम सुन रहे हैं।

+1

यह "सुनने" तक सीमित नहीं है, इसलिए यदि आप 'lsof -i: 8080' निर्दिष्ट करते हैं और आपके पास पोर्ट 8080 पर प्रॉक्सी से कनेक्ट प्रक्रियाओं का एक गुच्छा है तो आप उन्हें भी प्राप्त करेंगे। –

98

सभी संबंधित नेटवर्किंग दिखाने के लिए एक port दिया:

lsof -iTCP -i :port 
lsof -i :22 

किसी विशिष्ट होस्ट करने के लिए कनेक्शन दिखाने के लिए, @host

lsof [email protected] 

दिखाएँ कनेक्शन मेजबान पर आधारित है और बंदरगाह @host:port का उपयोग कर का उपयोग lsof [email protected]-u का उपयोग कर

lsof -i| grep LISTEN 

दिखाएँ क्या उसे किसी उपयोगकर्ता खुला है: 5:22

grepLISTEN के लिए पिंग क्या बंदरगाहों आपके सिस्टम पर कनेक्शन के लिए प्रतीक्षा कर रहा है पता चलता

lsof -u daniel 

फ़ाइलें देखने के लिए और नेटवर्क कनेक्शन एक कमांड -c

lsof -c syslog-ng 
012 के साथ उपयोग कर रहा है

lsof -p 10075 

-t विकल्प रिटर्न सिर्फ एक PID

lsof -t -c Mail 

-t का उपयोग करना:

-p स्विच आप देखते हैं कि क्या एक दिया प्रक्रिया ID खुला है, जो अज्ञात प्रक्रियाओं के बारे में जानने के लिए अच्छा है की सुविधा देता है और -c विकल्प एक साथ आप HUP प्रक्रिया

kill -HUP $(lsof -t -c sshd) 

तुम भी -u साथ -t का प्रयोग कर एक उपयोगकर्ता खुला

kill -9 $(lsof -t -u daniel) 
+0

स्रोत: http://danielmiessler.com/study/lsof/ –

+0

यदि आप रुबी का उपयोग करते हैं, तो धोखा मणि का उपयोग करने का एक अच्छा तरीका है। यह कई सुविधाजनकताओं (भाषा स्वतंत्र) की चीट-चादरों के लिए सुविधाजनक, समुदाय संचालित सीएलआई है। इसे एक [कोशिश करें] (http://cheat.errtheblog.com/) दें। –

7
lsof +f -- /mountpoint 

सूचियों फाइलों पर माउंट/माउंटप्वाइंट पर घुड़सवार का उपयोग कर प्रक्रियाओं है सब कुछ को मारने के लिए कर सकते हैं। यह जानने के लिए विशेष रूप से उपयोगी कौन सी प्रक्रिया (एसएस) एक घुड़सवार यूएसबी स्टिक या सीडी/डीवीडी का उपयोग कर रहे हैं।

10
lsof +D /some/directory 

निर्देशिका में खोले गए सभी फ़ाइलों को रिकर्सिव रूप से प्रदर्शित करेगा। + डी सिर्फ शीर्ष स्तर के लिए।

यह उपयोगी है जब आपके पास आईओ के लिए उच्च प्रतीक्षा% है, जो किसी विशेष एफएस पर उपयोग करने के लिए सहसंबंधित है और यह देखना चाहता है कि कौन सी प्रक्रियाएं आपके आईओ को चबाने वाली हैं।

संबंधित मुद्दे