Watchdog – फ़ाइलों में बदलावों की निगरानी (फ़ाइल मॉनिटरिंग)

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

फ़ाइल सिस्टम मॉनिटरिंग का परिचय

आधुनिक सॉफ़्टवेयर डेवलपमेंट में, फ़ाइल सिस्टम में बदलावों की निगरानी करना एक बहुत ही महत्वपूर्ण कार्य है। फ़ाइलों के बनने, बदलने, हटने और स्थानांतरित होने पर नज़र रखना कई परिदृश्यों में ज़रूरी होता है: कोड बदलने पर ऑटोमैटिक टेस्ट चलाने से लेकर प्रोडक्शन में लॉग्स की निगरानी करने तक।

Watchdog लाइब्रेरी Python के लिए एक क्रॉस-प्लेटफ़ॉर्म समाधान है, जो न्यूनतम ओवरहेड के साथ फ़ाइल सिस्टम की कुशल और विश्वसनीय निगरानी प्रदान करती है। यह ऑपरेटिंग सिस्टम के नेटिव मैकेनिज़्म का उपयोग करती है और फ़ाइल सिस्टम इवेंट्स के साथ काम करने के लिए एक समान API प्रदान करती है।

Watchdog क्या है

Watchdog एक Python लाइब्रेरी है जो रीयल-टाइम में फ़ाइल सिस्टम की निगरानी करती है। यह क्रॉस-प्लेटफ़ॉर्म संगतता प्रदान करती है, और ऑपरेटिंग सिस्टम के अनुसार अलग-अलग सिस्टम मैकेनिज़्म का उपयोग करती है: Linux में inotify, macOS में FSEvents और Windows में ReadDirectoryChangesW।

मुख्य लाभ

यह लाइब्रेरी खुद से बनाए गए समाधानों या वैकल्पिक टूल्स की तुलना में कई महत्वपूर्ण लाभ प्रदान करती है। पहला, यह फ़ाइल सिस्टम को बार-बार पोल करने के बजाय नेटिव सिस्टम API का उपयोग करके उच्च प्रदर्शन सुनिश्चित करती है। दूसरा, Watchdog सभी समर्थित प्लेटफ़ॉर्म के लिए एक समान इंटरफ़ेस प्रदान करती है, जिससे क्रॉस-प्लेटफ़ॉर्म एप्लिकेशन विकसित करना आसान हो जाता है।

इंस्टॉलेशन और सेटअप

लाइब्रेरी को pip के माध्यम से मानक तरीके से इंस्टॉल किया जाता है:

pip install watchdog

अतिरिक्त सुविधाओं के लिए, जिसमें watchmedo कमांड-लाइन यूटिलिटी शामिल है, आप विस्तारित संस्करण इंस्टॉल कर सकते हैं:

pip install watchdog[watchmedo]

लाइब्रेरी को किसी अतिरिक्त कॉन्फ़िगरेशन की आवश्यकता नहीं है और यह इंस्टॉल होने के तुरंत बाद उपयोग के लिए तैयार है।

आर्किटेक्चर और मुख्य घटक

Watchdog कई प्रमुख घटकों के आसपास बनाई गई है जो फ़ाइल सिस्टम की निगरानी सुनिश्चित करने के लिए एक साथ काम करते हैं।

Observer (प्रेक्षक)

Observer मॉनिटरिंग सिस्टम का केंद्रीय घटक है। यह निगरानी प्रक्रिया शुरू और प्रबंधित करता है, और मुख्य प्रोग्राम के नॉन-ब्लॉकिंग निष्पादन को सुनिश्चित करने के लिए एक अलग थ्रेड में काम करता है। Observer एक साथ कई पथों को विभिन्न इवेंट हैंडलर के साथ ट्रैक कर सकता है।

EventHandler (इवेंट हैंडलर)

EventHandler यह निर्धारित करता है कि प्रोग्राम को फ़ाइल सिस्टम के विभिन्न इवेंट्स पर कैसे प्रतिक्रिया देनी चाहिए। डेवलपर FileSystemEventHandler बेस क्लास से इनहेरिट करके और आवश्यक मेथड्स को ओवरराइड करके अपने स्वयं के हैंडलर बनाते हैं।

Event (इवेंट्स)

इवेंट्स ऐसे ऑब्जेक्ट होते हैं जिनमें फ़ाइल सिस्टम में हुए परिवर्तनों के बारे में जानकारी होती है। प्रत्येक इवेंट में फ़ाइल या डायरेक्टरी का पथ, ऑपरेशन का प्रकार और अतिरिक्त मेटाडेटा शामिल होता है।

उपयोग के बुनियादी उदाहरण

सबसे सरल निगरानी

आइए मॉनिटरिंग सिस्टम बनाने का एक बुनियादी उदाहरण देखें:

import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler

class BasicHandler(FileSystemEventHandler):
    def on_modified(self, event):
        if not event.is_directory:
            print(f"फ़ाइल बदली गई: {event.src_path}")
    
    def on_created(self, event):
        if not event.is_directory:
            print(f"फ़ाइल बनाई गई: {event.src_path}")

observer = Observer()
observer.schedule(BasicHandler(), path="./monitored_folder", recursive=True)
observer.start()

try:
    while True:
        time.sleep(1)
except KeyboardInterrupt:
    observer.stop()
    
observer.join()

लॉगिंग के साथ निगरानी

इवेंट्स की अधिक विस्तृत ट्रैकिंग के लिए, आप बिल्ट-इन लॉगिंग का उपयोग कर सकते हैं:

                    

अनुशंसाएँ