কম্পিউটার টিউটোরিয়াল

Watchman: দক্ষ ফাইল ও ডিরেক্টরি চেঞ্জ মনিটরিং টুল

Watchman হ’ল একটি ওপেন সোর্স এবং ক্রস-প্ল্যাটফর্ম ফাইল ওয়াচিং সার্ভিস যা ফাইলগুলো ওয়াচ করে এবং পরিবর্তন হলে রেকর্ড করে বা অ্যাকশন নেয়। এটি Facebook-এর 의해 ডেভেলপ করা হয়েছে এবং লিনাক্স, OS X, FreeBSD, এবং Solaris-এ চলে। এটি একটি ক্লায়েন্ট-সার্ভার মডেলে রান করে এবং লিনাক্স কernel-এর inotify ইউটিলিটি ব্যবহার করে একটি অধিক শক্তিশালী নোটিফিকেশন প্রদান করে।

Watchman-এর উপকারী কনসেপ্ট

  • এটি রিকার্সিভলি এক বা একাধিক ডিরেক্টরি ট্রি ওয়াচ করে।
  • প্রতিটি ওয়াচড ডিরেক্টরি একটি রুট कहলায়।
  • এটি কমান্ড-লাইন বা JSON ফরম্যাটে লেখা একটি কনফিগারেশন ফাইল দিয়ে কনফিগার করা যায়।
  • এটি লগ ফাইলে পরিবর্তন রেকর্ড করে।
  • একটি রুটে ঘটা ফাইল পরিবর্তনের সাবস্ক্রিপশন সাপোর্ট করে।
  • আপনাকে একটি রুট কোয়েরি করতে দেয় ফাইল পরিবর্তনের জন্য যেহেতু আপনি শেষ চেক করলেন, বা ট্রির বর্তমান স্টেট।
  • এটি একটি পুরো প্রজেক্ট ওয়াচ করতে পারে।

এই আর্টিকেলে, আমরা ব্যাখ্যা করব কীভাবে watchman ইনস্টল এবং ব্যবহার করতে হয় ফাইল ওয়াচ (মনিটর) করতে এবং পরিবর্তন হলে রেকর্ড করতে লিনাক্সে। আমরা সংক্ষেপে দেখাব কীভাবে একটি ডিরেক্টরি ওয়াচ করতে হয় এবং পরিবর্তন হলে একটি স্ক্রিপ্ট আহ্বান করতে হয়।

লিনাক্সে Watchman ফাইল ওয়াচিং সার্ভিস ইনস্টল করা

আমরা watchman সার্ভিস সোর্স থেকে ইনস্টল করব, তাই প্রথমে এই প্রয়োজনীয় ডিপেন্ডেন্সি libssl-dev, autoconf, automake 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 openssl-devel libssl-devel libtool # yum groupinstall 'Development Tools' ----------- On 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 দুটিভাবে কনফিগার করা যায়: (১) কমান্ড-লাইন দিয়ে যখন ডেমন ব্যাকগ্রাউন্ডে চলছে বা (২) JSON ফরম্যাটে লেখা একটি কনফিগারেশন ফাইল দিয়ে।

একটি ডিরেক্টরি (যেমন ~/bin) পরিবর্তনের জন্য ওয়াচ করতে, নিচের কমান্ড রান করুন।

$ watchman watch ~/bin/ 
Watchman: দক্ষ ফাইল ও ডিরেক্টরি চেঞ্জ মনিটরিং টুললিনাক্সে একটি ডিরেক্টরি ওয়াচ

নিচের কমান্ড একটি কনফিগারেশন ফাইল লিখে যেটি নাম state /usr/local/var/run/watchman/<username>-state/ অধীনে, JSON ফরম্যাটে এবং একটি লগ ফাইল যেটি নাম log একই লোকেশনে।

আপনি ক্যাট কমান্ড ব্যবহার করে দুটি ফাইল ভিউ করতে পারেন जैसा দেখানো।

$ 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 এক্সিকিউট করেন একটি ডিরেক্টরি ওয়াচ করার জন্য, সেটি ওয়াচ লিস্টে যোগ হয় এবং ভিউ করতে, নিচের কমান্ড রান করুন।

$ watchman watch-list 
Watchman: দক্ষ ফাইল ও ডিরেক্টরি চেঞ্জ মনিটরিং টুলওয়াচ লিস্ট ভিউ

একটি রুট-এর জন্য ট্রিগার লিস্ট ভিউ করতে, নিচের কমান্ড রান করুন ( ~/bin কে root নাম দিয়ে রিপ্লেস করুন)।

$ watchman trigger-list ~/bin 
Watchman: দক্ষ ফাইল ও ডিরেক্টরি চেঞ্জ মনিটরিং টুলএকটি রুটের জন্য ট্রিগার লিস্ট দেখান

উপরের কনফিগারেশনের ভিত্তিতে, প্রতিবার ~/bin ডিরেক্টরি পরিবর্তন হলে, একো ফাইল যেমন file.2019-03-13.23:14:17.txt সেটির ভিতরে তৈরি হয় এবং আপনি ls কমান্ড দিয়ে সেগুলো দেখতে পারেন।

$ ls 
Watchman: দক্ষ ফাইল ও ডিরেক্টরি চেঞ্জ মনিটরিং টুলWatchman কনফিগারেশন টেস্ট

লিনাক্সে 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 GitHub রিপোজিটরি ভিজিট করুন: https://github.com/facebook/watchman.

আপনি নিচের সম্পর্কিত আর্টিকেলগুলোও পড়তে পছন্দ করতে পারেন।

  1. Swatchdog – লিনাক্সে রিয়েল-টাইমে সিম্পল লগ ফাইল ওয়াচার
  2. 4 Ways to Watch or Monitor Log Files in Real Time
  3. fswatch – লিনাক্সে ফাইল এবং ডিরেক্টরি চেঞ্জ মনিটর করে
  4. Pyintify – লিনাক্সে রিয়েল টাইমে ফাইলসিস্টেম চেঞ্জ মনিটর করে
  5. Inav – লিনাক্সে রিয়েল টাইমে Apache লগ ওয়াচ করে

Watchman হ’ল একটি ওপেন সোর্স ফাইল ওয়াচিং সার্ভিস যা ফাইলগুলো ওয়াচ করে এবং রেকর্ড করে, বা অ্যাকশন ট্রিগার করে, যখন সেগুলো পরিবর্তন হয়। নিচের ফিডব্যাক ফর্ম ব্যবহার করে প্রশ্ন জিজ্ঞাসা করুন বা আপনার চিন্তা আমাদের সাথে শেয়ার করুন।


  1. অ্যান্ড্রয়েডে থ্রেড (Thread) তৈরি করার পদ্ধতি

  2. HTML <textarea> required অ্যাট্রিবিউট

  3. Matplotlib-এ True/False বা Active/Inactive ডেটা প্লট করা

  4. JDBC ব্যবহার করে MySQL ডেটাবেসে ফাইল ইনসার্ট/স্টোর কীভাবে করবেন?