Watchman एक ओपन सोर्स और क्रॉस-प्लेटफॉर्म फाइल वाचिंग सर्विस है जो फाइलों को देखती है और जब वे बदलती हैं तो रिकॉर्ड करती है या कार्य करती है। इसे Facebook द्वारा विकसित किया गया है और यह लिनक्स, OS X, FreeBSD, और Solaris पर चलता है। यह क्लाइंट-सर्वर मॉडल में चलता है और लिनक्स कर्नेल के inotify यूटिलिटी का उपयोग करके अधिक शक्तिशाली अधिसूचना प्रदान करता है।
Watchman की उपयोगी अवधारणाएं
- यह एक या अधिक डायरेक्टरी ट्री को रिकर्सिवली देखता है।
- प्रत्येक देखी गई डायरेक्टरी को रूट कहा जाता है।
- इसे कमांड-लाइन या JSON फॉर्मेट में लिखी गई कॉन्फ़िगरेशन फाइल के माध्यम से कॉन्फ़िगर किया जा सकता है।
- यह लॉग फाइलों में परिवर्तन रिकॉर्ड करता है।
- रूट में होने वाले फाइल परिवर्तनों की सदस्यता का समर्थन करता है।
- आपको अंतिम बार जांचने के बाद से फाइल परिवर्तनों के लिए रूट क्वेरी करने या ट्री की वर्तमान स्थिति जानने की अनुमति देता है।
- यह पूरे प्रोजेक्ट को देख सकता है।
इस लेख में, हम बताएंगे कि लिनक्स में फाइलों को देखने (मॉनिटर करने) और जब वे बदलती हैं तो रिकॉर्ड करने के लिए watchman को कैसे इंस्टॉल और उपयोग करें। हम यह भी संक्षेप में प्रदर्शित करेंगे कि डायरेक्टरी को कैसे देखें और जब यह बदलती है तो स्क्रिप्ट को कैसे इनवोक करें।
लिनक्स में Watchman फाइल वाचिंग सर्विस इंस्टॉल करना
हम watchman सर्विस को सोर्स से इंस्टॉल करेंगे, इसलिए पहले अपने लिनक्स डिस्ट्रीब्यूशन पर निम्न कमांड का उपयोग करके ये आवश्यक निर्भरताएं libssl-dev, autoconf, automake libtool, setuptools, python-devel और libfolly इंस्टॉल करें।
----------- Debian/Ubuntu पर ----------- $ sudo apt install autoconf automake build-essential python-setuptools python-dev libssl-dev libtool ----------- RHEL/CentOS पर ----------- # yum install autoconf automake python-setuptools python-devel openssl-devel libssl-devel libtool # yum groupinstall 'Development Tools' ----------- Fedora पर ----------- $ sudo dnf install autoconf automake python-setuptools openssl-devel libssl-devel libtool $ sudo dnf groupinstall 'Development Tools'
एक बार आवश्यक निर्भरताएं इंस्टॉल हो जाने पर, आप इसके गिटहब रिपॉजिटरी को डाउनलोड करके, लोकल रिपॉजिटरी में जाकर, कॉन्फ़िगर करके, बिल्ड करके और इंस्टॉल करके watchman बनाना शुरू कर सकते हैं।
$ git clone https://github.com/facebook/watchman.git $ cd watchman $ git checkout v4.9.0 $ ./autogen.sh $ ./configure $ make $ sudo make install
लिनक्स में Watchman के साथ फाइलों और डायरेक्टरी को देखना
Watchman को दो तरीकों से कॉन्फ़िगर किया जा सकता है: (1) कमांड-लाइन के माध्यम से जबकि डेमॉन बैकग्राउंड में चल रहा हो या (2) JSON फॉर्मेट में लिखी गई कॉन्फ़िगरेशन फाइल के माध्यम से।
परिवर्तनों के लिए डायरेक्टरी (जैसे ~/bin) देखने के लिए, निम्न कमांड चलाएं।
$ watchman watch ~/bin/

निम्न कमांड /usr/local/var/run/watchman/<username>-state/ के तहत state नामक एक कॉन्फ़िगरेशन फाइल लिखता है, JSON फॉर्मेट में साथ ही उसी स्थान पर log नामक एक लॉग फाइल।
आप cat कमांड का उपयोग करके दोनों फाइलों को देख सकते हैं जैसा कि दिखाया गया है।
$ cat /usr/local/var/run/watchman/aaronkilik-state/state $ cat /usr/local/var/run/watchman/aaronkilik-state/log
आप यह भी परिभाषित कर सकते हैं कि जब देखी जा रही डायरेक्टरी में परिवर्तन हो तो कौन सी कार्रवाई ट्रिगर करनी है। उदाहरण के लिए निम्न कमांड में, 'test-trigger' ट्रिगर का नाम है और ~bin/pav.sh वह स्क्रिप्ट है जिसे मॉनिटर की जा रही डायरेक्टरी में परिवर्तन का पता चलने पर इनवोक किया जाएगा।
परीक्षण उद्देश्यों के लिए, pav.sh स्क्रिप्ट बस उसी डायरेक्टरी में एक टाइमस्टैम्प के साथ एक फाइल बनाती है (यानी file.$time.txt) जहां स्क्रिप्ट संग्रहीत है।
time=`date +%Y-%m-%d.%H:%M:%S` touch file.$time.txt
फाइल सेव करें और स्क्रिप्ट को निष्पादन योग्य बनाएं जैसा कि दिखाया गया है।
$ chmod +x ~/bin/pav.sh
ट्रिगर लॉन्च करने के लिए, निम्न कमांड चलाएं।
$ watchman -- trigger ~/bin 'test-trigger' -- ~/bin/pav.sh

जब आप डायरेक्टरी पर नज़र रखने के लिए watchman निष्पादित करते हैं, तो इसे वॉच लिस्ट में जोड़ा जाता है और इसे देखने के लिए, निम्न कमांड चलाएं।
$ watchman watch-list

रूट के लिए ट्रिगर लिस्ट देखने के लिए, निम्न कमांड चलाएं (~/bin को रूट नाम से बदलें)।
$ watchman trigger-list ~/bin

उपरोक्त कॉन्फ़िगरेशन के आधार पर, हर बार जब ~/bin डायरेक्टरी बदलती है, तो file.2019-03-13.23:14:17.txt जैसी फाइल इसके अंदर बनाई जाती है और आप उन्हें ls कमांड का उपयोग करके देख सकते हैं।
$ ls

लिनक्स में Watchman सर्विस अनइंस्टॉल करना
यदि आप watchman अनइंस्टॉल करना चाहते हैं, तो सोर्स डायरेक्टरी में जाएं और निम्न कमांड चलाएं:
$ sudo make uninstall $ cd '/usr/local/bin' && rm -f watchman $ cd '/usr/local/share/doc/watchman-4.9.0 ' && rm -f README.markdown
अधिक जानकारी के लिए, Watchman गिटहब रिपॉजिटरी पर जाएं: https://github.com/facebook/watchman.
आप निम्नलिखित संबंधित लेख भी पढ़ना पसंद कर सकते हैं।
- Swatchdog – लिनक्स में रियल-टाइम में सिंपल लॉग फाइल वॉचर
- लॉग फाइलों को रियल टाइम में देखने या मॉनिटर करने के 4 तरीके
- fswatch – लिनक्स में फाइलों और डायरेक्टरी परिवर्तनों की निगरानी करता है
- Pyintify – लिनक्स में रियल टाइम में फाइलसिस्टम परिवर्तनों की निगरानी
- Inav – लिनक्स में रियल टाइम में Apache लॉग्स देखें
Watchman एक ओपन सोर्स फाइल वाचिंग सर्विस है जो फाइलों को देखती है और रिकॉर्ड करती है, या जब वे बदलती हैं तो कार्य ट्रिगर करती है। नीचे दिए गए फीडबैक फॉर्म का उपयोग करके प्रश्न पूछें या अपने विचार हमारे साथ साझा करें।