चौकीदार - परिवर्तन के लिए एक फ़ाइल और निर्देशिका देखना उपकरण


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

  • It recursively watches watch one or more directory trees.
  • Each watched directory is called a root.
  • It can be configured via the command-line or a configuration file written in JSON format.
  • It records changes to log files.
  • Supports subscription to file changes that occur in a root.
  • Allows you to query a root for file changes since you last checked, or the current state of the tree.
  • It can watch an entire project.

इस लेख में, हम बताएंगे कि कैसे चौकीदार को स्थापित करने और उपयोग करने के लिए (देखें) फ़ाइलों को देखने और रिकॉर्ड करने के लिए जब वे लिनक्स में बदलते हैं। हम यह भी संक्षेप में प्रदर्शित करेंगे कि किसी निर्देशिका को कैसे देखा जाए और जब वह परिवर्तित होती है तो एक स्क्रिप्ट का आह्वान करें।

लिनक्स में वॉचमैन फ़ाइल देखना सेवा स्थापित करना

हम स्रोतों से चौकीदार सेवा स्थापित करेंगे, इसलिए पहले इन आवश्यक निर्भरताओं को स्थापित करें libssl-dev , ऑटोकॉनफ़ , स्वचालित <> libtool , setuptools , python-devel और libfolly अपने लिनक्स वितरण पर निम्न आदेश का उपयोग करते हुए।

----------- On Debian/Ubuntu ----------- 
$ sudo apt install autoconf automake build-essential python-setuptools python-dev libssl-dev libtool 

----------- On RHEL/CentOS -----------
# yum install autoconf automake python-setuptools python-devel libssl-devel libtool 
# yum groupinstall 'Development Tools' 

----------- On Fedora -----------
$ sudo dnf install autoconf automake python-setuptools libssl-devel libtool 
$ sudo dnf groupinstall 'Development Tools'  

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

$ git clone https://github.com/facebook/watchman.git
$ cd watchman
$ git checkout v4.9.0  
$ ./autogen.sh
$ ./configure
$ make
$ sudo make install

लिनक्स में वॉचमैन के साथ फाइल और निर्देशिकाएँ देखना

वॉचमैन को दो तरीकों से कॉन्फ़िगर किया जा सकता है: (1) कमांड-लाइन के माध्यम से जबकि डेमन पृष्ठभूमि में चल रहा है या (2) JSON प्रारूप में लिखी गई कॉन्फ़िगरेशन फ़ाइल के माध्यम से।

परिवर्तनों के लिए एक निर्देशिका (उदा <कोड> ~/बिन ) देखने के लिए, निम्न कमांड चलाएँ।

$ watchman watch ~/bin/

निम्न आदेश स्थिति /usr/स्थानीय/var/run/watchman/< उपयोगकर्ता नाम > -state/ के तहत एक कॉन्फ़िगरेशन फ़ाइल लिखता है, साथ ही JSON प्रारूप में भी; एक ही स्थान पर log नामक लॉग फ़ाइल।

आप बिल्ली कमांड का उपयोग करके दो फाइलों को शो के रूप में देख सकते हैं।

$ cat /usr/local/var/run/watchman/aaronkilik-state/state
$ cat /usr/local/var/run/watchman/aaronkilik-state/log

आप यह भी परिभाषित कर सकते हैं कि जब कोई निर्देशिका परिवर्तनों के लिए देखी जा रही हो तो ट्रिगर करने के लिए क्या कार्रवाई की जाए। उदाहरण के लिए निम्नलिखित कमांड में, '<कोड> परीक्षण-ट्रिगर ' ट्रिगर का नाम है और <कोड> ~ बिन/pav.sh वह स्क्रिप्ट है जो परिवर्तनों का पता चलने पर आह्वान किया जाएगा निर्देशिका में नजर रखी जा रही है।

परीक्षण के प्रयोजनों के लिए, pav.sh स्क्रिप्ट बस एक फ़ाइल बनाता है जिसमें टाइमस्टैम्प (यानी <कोड> फ़ाइल..टेक् ) उसी निर्देशिका के भीतर होती है जहाँ स्क्रिप्ट संग्रहीत है।

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 watch-list 

रूट के लिए ट्रिगर सूची देखने के लिए, निम्न कमांड (<कोड> ~/bin को root नाम से बदलें) चलाएँ।

$ watchman trigger-list ~/bin

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

$ ls

लिनक्स में वॉचमैन सेवा की स्थापना

यदि आप चौकीदार को अनइंस्टॉल करना चाहते हैं, तो स्रोत निर्देशिका में जाएं और निम्नलिखित कमांड चलाएँ:

$ sudo make uninstall
$ cd '/usr/local/bin' && rm -f watchman 
$ cd '/usr/local/share/doc/watchman-4.9.0 ' && rm -f README.markdown 

अधिक जानकारी के लिए, वॉचमैन जीथब रिपॉजिटरी: https://github.com/facebook/watchman पर जाएं।

आप इन निम्नलिखित संबंधित लेखों को पढ़ना पसंद कर सकते हैं।

  1. Swatchdog – Simple Log File Watcher in Real-Time in Linux
  2. 4 Ways to Watch or Monitor Log Files in Real Time
  3. fswatch – Monitors Files and Directory Changes in Linux
  4. Pyintify – Monitor Filesystem Changes in Real Time in Linux
  5. Inav – Watch Apache Logs in Real Time in Linux

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