प्रकाशित: 19 अप्रैल, 2026, दोपहर 2:00 बजे EDT
अफाम का टेक प्रकाशन में अनुभव 2018 से है, जब उन्होंने Make Tech Easier के लिए काम किया। वर्षों से, उन्होंने उच्च-गुणवत्ता वाले गाइड, समीक्षाएं, टिप्स, और व्याख्याता लेख प्रकाशित करने की प्रतिष्ठा बनाई है, जिसमें Windows, लिनक्स, और ओपन सोर्स टूल्स शामिल हैं। उनका काम Technical Ustad, Windows Report, Guiding Tech, Alphr, और Next of Windows सहित शीर्ष वेबसाइटों पर प्रदर्शित किया गया है।
उनके पास कंप्यूटर विज्ञान में पहली डिग्री है और वे डेटा गोपनीयता और सुरक्षा के प्रबल समर्थक हैं, इस विषय पर कई टिप्स, वीडियो, और ट्यूटोरियल Fuzo Tech YouTube चैनल पर प्रकाशित हैं।
जब वह काम नहीं कर रहे होते, तो वे अपने परिवार के साथ समय बिताना, साइकिल चलाना, या अपने बगीचे की देखभाल करना पसंद करते हैं।
जब मैं लिनक्स सेट करता हूँ, तो यह आमतौर पर अपेक्षा के अनुरूप चलता है। पृष्ठभूमि में कहीं, यह फाइलें बनाता है, कॉन्फिगरेशन अपडेट करता है, और कैश बनाता है। हालांकि, अगर कुछ टूटा नहीं है तो मैं इनमें से किसी भी प्रक्रिया को शायद ही कभी देखता हूँ।
एक बार के लिए, मैं इसे अलग तरीके से करना चाहता था। मैंने फैसला किया कि सब कुछ देखूं जैसे यह पृष्ठभूमि में होता है। तो, मैंने रियल-टाइम गतिविधि की निगरानी के लिए inotifywait कमांड का उपयोग किया। मैं इस कमांड की शक्ति से आश्चर्यचकित था। इसने खुलासा किया कि कैसे सबसे सरल कार्रवाइयां भी कई पृष्ठभूमि ऑपरेशन बना सकती हैं।
वह लिनक्स फीचर जो सब कुछ ट्रैक करता है
फाइल गतिविधि की निगरानी करना आपके विचार से आसान है
Inotify एक कर्नेल-लेवल सबसिस्टम है जिसे Linux में संस्करण 2.6.13 में जोड़ा गया था। यह फीचर रियल-टाइम फाइल सिस्टम इवेंट्स को कैप्चर करता है और उन्हें घटित होते ही रिपोर्ट करता है। यह बस कर्नेल है जो आपको परिवर्तनों की सूचना दे रहा है।
यह लगातार फाइल निर्माण, संशोधन, विलोपन, एक्सेस, और चाल को ट्रैक करता है ताकि इन इवेंट्स की रिपोर्ट की जा सके। inotify का उपयोग करने के बारे में मुझे जो पसंद आया वह यह है कि यह सामान्य उपयोग के दौरान न्यूनतम ओवरहेड जोड़ता है। ऐसा इसलिए है क्योंकि यह केवल उन सिग्नल्स की रिपोर्ट कर रहा है जो कर्नेल पहले से ही उत्पन्न करता है; यह बैकग्राउंड स्कैनर नहीं चला रहा है।
आप inotify के साथ सीधे इंटरैक्ट नहीं कर सकते, और इसलिए आपको inotify-tools. की आवश्यकता है। यह दो यूजर-स्पेस यूटिलिटीज प्रदान करता है जो कर्नेल फीचर को टर्मिनल से उपयोग योग्य बनाते हैं।
घटक
यह क्या करता है
inotify
कर्नेल सबसिस्टम जो फाइल सिस्टम इवेंट्स उत्पन्न करता है
inotifywait
उन इवेंट्स को आपके टर्मिनल पर लाइव स्ट्रीम करता है
inotifywatch
एक निर्धारित अवधि में प्रत्येक इवेंट प्रकार की घटनाओं को गिनता है
इन घटकों में से, inotifywait वह विकल्प है जो रियल-टाइम निगरानी तक पहुंच की अनुमति देता है।
वह एक कमांड जो आपको ऐप्स को लाइव देखने देती है
शून्य से रियल-टाइम फाइल ट्रैकिंग सेकंड में
शुरू करने के लिए, आपको inotify-tools सेट करने के लिए केवल एक कमांड की आवश्यकता है क्योंकि inotify पहले से ही कर्नेल में है।
डिस्ट्रो
कमांड
Ubuntu/Debian
sudo apt install inotify-tools
Fedora
sudo dnf install inotify-tools
Arch Linux
sudo pacman -S inotify-tools
openSUSE
sudo zypper install inotify-tools
एक बार इंस्टॉल हो जाने पर, आप inotifywait --version चलाकर पुष्टि कर सकते हैं कि यह उपयोग के लिए तैयार है, और फिर inotifywait -m ~/Documents चलाएं। -m फ्लैग शामिल करना महत्वपूर्ण है ताकि जब कमांड चले, तो यह पहले इवेंट के बाद बाहर न निकले। तुरंत, आप डायरेक्टरी में परिवर्तन देखना शुरू करते हैं, इस मामले में, "Documents" डायरेक्टरी। आप जो इवेंट देखते हैं वे फॉर्मेट का पालन करते हैं: वॉच्ड डायरेक्टरी/इवेंट प्रकार/फाइल जिसने इवेंट को ट्रिगर किया। उदाहरण के लिए, आपके पास /home/user/Documents/ MODIFY notes.txt हो सकता है।
एक बार आपके पास एक इवेंट हो, तो आप रिपोर्ट को अधिक उपयोगी बनाने के लिए कुछ फ्लैग्स का उपयोग कर सकते हैं।
फ्लैग
उद्देश्य
-m
लगातार चलते रहें बजाय एक इवेंट के बाद बाहर निकलने के
-r
सभी सबडायरेक्टरीज को रिकर्सिवली देखें
-e
विशिष्ट इवेंट प्रकारों के लिए फ़िल्टर करें, उदा., -e create,modify,delete
--format
पठनीयता या लॉगिंग के लिए आउटपुट संरचना को नियंत्रित करें
--timefmt
प्रत्येक इवेंट में टाइमस्टैम्प जोड़ें
ये वे बेसिक कमांड हैं जिनका आप उपयोग करेंगे; आपको केवल उन्हें किसी वास्तविक चीज़ पर इंगित करने की आवश्यकता है।
वास्तविक ऐप्स पर इसका उपयोग करते समय मैंने वास्तव में क्या देखा
फाइल व्यवहार जो आप सामान्य रूप से कभी नोटिस नहीं करते
यह देखने के लिए कि मेरे कंप्यूटर पर क्या होता है, मैंने ऐप्स का उपयोग उसी तरह किया जैसे मैं आमतौर पर करता हूं जबकि inotifywait को विशिष्ट डायरेक्टरीज पर इंगित किया। मुझे वास्तव में आश्चर्य हुआ कि यह मुझे क्या दिखाता है, बल्कि पृष्ठभूमि गतिविधि की सरासर मात्रा।
मैंने एक टेक्स्ट एडिटर से शुरू किया। अपने Documents फोल्डर की निगरानी करते हुए, मैंने एक फाइल सेव की। मुझे एक इवेंट की सूचना मिलने की उम्मीद थी, लेकिन मुझे एक अनुक्रम मिला। इसने एक अस्थायी फाइल बनते हुए दिखाया, जिसके बाद moved_from और moved_to इवेंट्स आए। इस सब में, मेरे टेक्स्ट एडिटर ने मूल फाइल को सीधे कभी नहीं छुआ। जैसे ही मैंने फाइल बनाई, इसने एक थ्रोअवे फाइल पर लिखने से पहले उसमें स्वैप कर दिया। इस तरह, मूल फाइल बरकरार रहती है भले ही लिखने के बीच में कुछ हो जाए।
फिर मैंने ~/.mozilla/firefox/ डायरेक्टरी पर स्विच किया, जहां मैंने Firefox की निगरानी की। एक बार ब्राउज़र लॉन्च करने पर, राइट्स का तत्काल विस्फोट हुआ। सेकंड के भीतर, मेरे पास बुकमार्क और ब्राउज़िंग इतिहास के लिए places.sqlite था, फिर खुले टैब के लिए sessionstore.jsonlz4 । हालांकि, मुझे जो दिलचस्प लगा वह ब्राउज़र के आइडल होने पर भी लगातार राइट्स थे। यह सामान्य ब्राउज़र व्यवहार प्रतीत होता है। मैंने Chrome के साथ इसी तरह के आइडल राइट्स देखे हैं। Firefox में पृष्ठभूमि गतिविधि की पर्याप्त मात्रा महत्वपूर्ण है क्योंकि यह लगातार सेशन डेटा को डिस्क पर फ्लश करता है, यह सुनिश्चित करते हुए कि क्रैश के बाद टैब रिकवर किए जा सकते हैं।
हालांकि, इन सभी में से, पैकेज इंस्टॉलेशन ने सबसे अधिक शोर पैदा किया। मैंने /var/lib/dpkg/ देखते हुए apt install चलाया, और मैंने पहले एक lock-frontend फाइल दिखाई दी। यह एक महत्वपूर्ण तंत्र है जो सुनिश्चित करता है कि पैकेज ऑपरेशन समवर्ती रूप से न चलें। उसके बाद, पैकेज डेटाबेस में बस इतनी सारी राइट्स हो रही थीं।
मेरे द्वारा देखी गई तीनों डायरेक्टरीज में जो सुसंगत था वह यह था कि कभी भी एक सिंगल क्लीन फाइल ऑपरेशन नहीं था। वे सभी लेयर्स के साथ आए।
यह वास्तविक जीवन में वास्तव में उपयोगी कब बन जाता है
यह एक प्रयोग के रूप में शुरू हुआ, लेकिन inotifywait के स्वाभाविक रूप से पहुंचने वाले टूल बनने से पहले केवल कुछ सत्र लगे। यह कॉन्फिगरेशन मुद्दों को डीबग करने के लिए एक महत्वपूर्ण टूल है। कॉन्फिग डायरेक्शन को देखना और ओवरराइट की गई फाइलों को नोट करना जैसे ही वे होती हैं, आपको कुछ स्पष्टता दे सकता है जब एक सेटिंग खुद को रीसेट करती रहती है।
मैं इसके लिए भी पहुंचता हूं जब मुझे उस सॉफ्टवेयर का मूल्यांकन करना होता है जिससे मैं परिचित नहीं हूं। मुझे अब यह अनुमान लगाने की आवश्यकता नहीं है कि सॉफ्टवेयर अपना डेटा कहां स्टोर करता है, क्योंकि अब मैं देख सकता हूं कि यह क्या छूता है। उन ऐप्स को पकड़ने का एक आसान तरीका जो अपनी अपेक्षित डायरेक्टरीज के बाहर लिखते हैं।
हालांकि, अगर आप inotifywait का उपयोग कर रहे हैं, तो बहुत शोर वाले आउटपुट के लिए तैयार रहें। एक दूसरी सीमा यह है कि भले ही यह दिखाता है कि क्या बदला है, यह यह नहीं बताता कि क्यों। उस ने कहा, यह लिनक्स प्रबंधन के लिए मेरे द्वारा उपयोग किए जाने वाले सबसे उपयोगी कमांड में से एक बन गया है।