लिनक्स में ओपन फाइल्स को कैसे चेक करें

How Check Open Files Linux



आपने यह कहावत सुनी होगी, लिनक्स में सब कुछ एक फाइल है। हालांकि यह पूरी तरह सच नहीं है, लेकिन इसमें कई सच्चाईयां हैं।

लिनक्स और यूनिक्स जैसी प्रणालियों में, सब कुछ एक फाइल की तरह है। इसका मतलब है कि यूनिक्स सिस्टम में संसाधनों को एक फाइल डिस्क्रिप्टर सौंपा जाता है, जिसमें स्टोरेज डिवाइस, नेटवर्क सॉकेट, प्रोसेस आदि शामिल हैं।







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



दुर्भाग्य से, फाइल डिस्क्रिप्टर की अवधारणा इस ट्यूटोरियल के दायरे से बाहर है; अधिक सीखने पर आरंभ करने के लिए नीचे दिए गए लिंक पर विचार करें:



https://en.wikipedia.org/wiki/File_descriptor





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

यह ट्यूटोरियल खुली हुई फाइलों को देखने के तरीकों पर ध्यान केंद्रित करेगा और कौन सी प्रक्रिया या उपयोगकर्ता जिम्मेदार है।



आवश्यक शर्तें

शुरू करने से पहले, सुनिश्चित करें कि आपके पास:

  • एक लिनक्स सिस्टम
  • रूट या सूडो विशेषाधिकार वाले उपयोगकर्ता

यदि आपके पास ये हैं, तो आइए शुरू करें:

एलएसओएफ उपयोगिता

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

lsof उपयोगिता प्रमुख Linux वितरणों में उपलब्ध है; हालाँकि, आप इसे स्थापित नहीं पा सकते हैं और इस प्रकार मैन्युअल रूप से स्थापित करने की आवश्यकता हो सकती है।

डेबियन/उबंटू पर lsof कैसे स्थापित करें?

इसे डेबियन पर स्थापित करने के लिए, कमांड का उपयोग करें:

सुडो उपयुक्त-अपडेट प्राप्त करें

सुडो उपयुक्त-स्थापित करेंएलसोफे-तथा

आरईएचएल/सेंटोस पर कैसे स्थापित करें

REHL और CentOS पर स्थापित करने के लिए, कमांड का उपयोग करें:

सुडोडीएनएफ अद्यतन

सुडोडीएनएफइंस्टॉलएलसोफे

आर्क पर कैसे स्थापित करें

आर्क पर, कमांड का उपयोग करके पैकेज मैनेजर को कॉल करें:

सुडोpacman-उनके

सुडोpacman-एसएलसोफे

फेडोरा पर कैसे स्थापित करें

फेडोरा पर, कमांड का प्रयोग करें:

सुडो यम इंस्टालएलसोफे

एक बार आपके पास lsof उपयोगिता स्थापित और अद्यतन हो जाने के बाद, हम इसका उपयोग शुरू कर सकते हैं।

बेसिक lsof उपयोग

Lsof टूल का उपयोग करने के लिए, कमांड दर्ज करें:

सुडोएलसोफे

एक बार जब आप उपरोक्त कमांड को निष्पादित कर लेते हैं, तो lsof बहुत सारी जानकारी को डंप कर देगा जैसा कि नीचे दिखाया गया है:

उपरोक्त आउटपुट प्रक्रियाओं द्वारा खोली गई सभी फाइलों को दिखाता है। आउटपुट में विभिन्न कॉलम होते हैं, प्रत्येक फ़ाइल के बारे में विशिष्ट जानकारी का प्रतिनिधित्व करते हैं।

  • कमांड कॉलम - उस प्रक्रिया का नाम दिखाता है जो फ़ाइल का उपयोग कर रही है।
  • पीआईडी - फ़ाइल का उपयोग कर प्रक्रिया के प्रक्रिया पहचानकर्ता को दिखाता है।
  • टीआईडी - प्रक्रिया की कार्य आईडी (धागे) दिखाता है।
  • टास्कसीएमडी - टास्क कमांड के नाम का प्रतिनिधित्व करें।
  • उपयोगकर्ता - प्रक्रिया का स्वामी।
  • एफडी - फाइल डिस्क्रिप्टर नंबर दिखाता है। इस प्रकार प्रक्रियाएँ फ़ाइल का उपयोग करती हैं; इस कॉलम आउटपुट में उपलब्ध विकल्पों में शामिल हैं:
  • सीडब्ल्यूडी - वर्तमान कार्यशील निर्देशिका।
  • मेम - मेमोरी-मैप की गई फ़ाइल
  • पी.डी. - मूल निर्देशिका
  • जेएलडी - जेल निर्देशिका
  • एलटीएक्स - साझा पुस्तकालय पाठ
  • आरटीडी - मूल निर्देश संहिता।
  • टेक्स्ट - प्रोग्राम कोड और डेटा
  • एन एस - कर्नेल ट्रेस फ़ाइल।
  • ग़लती होना - फाइल डिस्क्रिप्टर सूचना त्रुटि
  • एमएमपी - मेमोरी-मैप्ड डिवाइस।
  • प्रकार - फ़ाइल से जुड़े नोड के प्रकार को दिखाता है, जैसे:
  • यूनिक्स - यूनिक्स डोमेन सॉकेट के लिए।
  • आपसे - निर्देशिका का प्रतिनिधित्व करता है
  • रेग - नियमित फ़ाइल का प्रतिनिधित्व
  • सीएचआर - विशेष वर्ण फ़ाइल का प्रतिनिधित्व करता है।
  • संपर्क - प्रतीकात्मक लिंक फ़ाइल
  • बीएलके - विशेष फ़ाइल को ब्लॉक करें
  • मंत्रिमंडल - इंटरनेट डोमेन सॉकेट
  • फीफो - एक नामित पाइप (फर्स्ट इन फर्स्ट आउट फ़ाइल)
  • पाइप - पाइप के लिए

और बहुत सारे।

  • उपकरण - विशेष वर्ण फ़ाइल, ब्लॉक विशेष, नियमित, निर्देशिका और NFS फ़ाइल के क्रम में अल्पविराम द्वारा अलग किए गए डिवाइस नंबर दिखाता है।
  • आकार / बंद - बाइट्स में ऑफसेट फ़ाइल पीआर फ़ाइल का आकार दिखाता है।
  • नोड - स्थानीय फ़ाइल की नोड संख्या, इंटरनेट प्रोटोकॉल प्रकार के लिए प्रकार, आदि दिखाता है।
  • नाम - आरोह बिंदु और fs का नाम दिखाता है जिस पर फ़ाइल स्थित है।

ध्यान दें: कॉलम पर विस्तृत जानकारी के लिए कृपया lsof मैनुअल देखें।

एक फाइल खोलने वाली प्रक्रियाओं को कैसे दिखाएं

Lsof हमें विकल्प प्रदान करता है जो हमें आउटपुट को फ़िल्टर करने में मदद करता है ताकि केवल एक विशिष्ट फ़ाइल खोली गई प्रक्रियाओं को दिखाया जा सके।

उदाहरण के लिए, फ़ाइल / बिन / बैश खोलने वाली फ़ाइल को देखने के लिए, कमांड का उपयोग इस प्रकार करें:

सुडोएलसोफे/पूर्वाह्न/दे घुमा के

यह आपको एक आउटपुट देगा जैसा कि नीचे दिखाया गया है:

कमांड पीआईडी ​​यूजर एफडी टाइप डिवाइस साइज:/बंद नोड नाम

ksmtuned१०२५रूट txt REG२५३,0 ११५०७०४ 428303 /usr/पूर्वाह्न/दे घुमा के

दे घुमा के 2968सेंटोस txt REG२५३,0 ११५०७०४ 428303 /usr/पूर्वाह्न/दे घुमा के

दे घुमा के ३०७५सेंटोस txt REG२५३,0 ११५०७०४ 428303 /usr/पूर्वाह्न/दे घुमा के

किसी विशिष्ट उपयोगकर्ता द्वारा खोली गई फ़ाइलें कैसे दिखाएं

हम किसी विशिष्ट उपयोगकर्ता द्वारा खोली गई फ़ाइलों को दिखाने के लिए आउटपुट को फ़िल्टर भी कर सकते हैं। हम इसे -u ध्वज का उपयोग करके उपयोगकर्ता नाम के रूप में करते हैं:

सुडोएलसोफेयूसैकड़ों

यह आपको एक आउटपुट देगा जैसा कि नीचे दिखाया गया है:

एक विशिष्ट प्रक्रिया द्वारा खोली गई फ़ाइलें कैसे दिखाएं

मान लीजिए हम एक विशिष्ट प्रक्रिया द्वारा खोली गई सभी फाइलों को देखना चाहते हैं? इसके लिए हम आउटपुट को फ़िल्टर करने के लिए प्रक्रिया के PID का उपयोग कर सकते हैं।

उदाहरण के लिए, नीचे दिया गया कमांड बैश द्वारा खोली गई फाइलों को दिखाता है।

सुडोएलसोफे-पी ३०७५

यह आपको केवल सिस्टमड द्वारा खोली गई फाइलें दिखाएगा जैसा कि दिखाया गया है:

निर्देशिका में खोली गई फ़ाइलें कैसे दिखाएं

किसी विशिष्ट निर्देशिका में फ़ाइलें खोलने के लिए, हम निर्देशिका पथ के बाद +D विकल्प पास कर सकते हैं।

उदाहरण के लिए, खुली फाइलों को / etc निर्देशिका में सूचीबद्ध करें।

सुडोएलएसओएफ +डी/आदि

इसके लिए नीचे आउटपुट है:

नेटवर्क कनेक्शन कैसे दिखाएं

चूंकि लिनक्स में सब कुछ एक फाइल है, हम नेटवर्क फाइलें जैसे टीसीपी फाइलें या कनेक्शन प्राप्त कर सकते हैं।

हम कमांड का उपयोग कर सकते हैं:

सुडोएलसोफे-मैंटीसीपी

यह आपको सिस्टम में TCP कनेक्शन देगा।

आप नीचे दिखाए गए आदेश का उपयोग करके विशिष्ट पोर्ट द्वारा फ़िल्टर भी कर सकते हैं:

सुडोएलसोफे-मैं:22

यह आपको नीचे दिखाए अनुसार आउटपुट देगा:

फाइलों को लगातार कैसे दिखाएं

Lsof हमें हर कुछ सेकंड में आउटपुट को लूप करने के लिए एक मोड प्रदान करता है। यह आपको किसी प्रक्रिया या उपयोगकर्ता द्वारा खोली गई फ़ाइलों की लगातार निगरानी करने की अनुमति देता है।

हालाँकि, इस विकल्प के लिए आपको प्रक्रिया को मैन्युअल रूप से समाप्त करने की आवश्यकता है।

उदाहरण के लिए, नीचे दिया गया कमांड पोर्ट 22 पर खोली गई फाइलों की लगातार निगरानी करता है:

सुडोएलएसओएफ -आर-मैं:22

जैसा कि आप देख सकते हैं, तीसरे लूप में, lsof SSH पर सर्वर से स्थापित कनेक्शन को पकड़ता है।

निष्कर्ष

Lsof एक अविश्वसनीय रूप से उपयोगी उपयोगिता है। यह आपको महत्वपूर्ण फ़ाइलों की निगरानी करने के साथ-साथ उपयोगकर्ताओं की निगरानी करने और फ़ाइलों को खोलने की प्रक्रिया की अनुमति देता है। समस्या निवारण या सिस्टम में दुर्भावनापूर्ण प्रयासों की तलाश करते समय यह अविश्वसनीय रूप से उपयोगी हो सकता है।

जैसा कि इस ट्यूटोरियल में दिखाया गया है, विभिन्न उदाहरणों और विधियों का उपयोग करके, आप कस्टम मॉनिटरिंग के लिए lsof टूल द्वारा प्रदान की गई कार्यक्षमता को जोड़ सकते हैं।

पढ़ने और साझा करने के लिए धन्यवाद! मुझे आशा है कि आपने कुछ नया सीखा!