প্রকাশিত: এপ্রিল ১৯, ২০২৬, ২:০০ PM EDT
আফামের টেক পাবলিশিং-এ অভিজ্ঞতা ২০১৮ সালে শুরু হয়, যখন তিনি Make Tech Easier-এ কাজ করতেন। বছরের পর বছর তিনি হাই-কোয়ালিটি গাইড, রিভিউ, টিপস, এবং এক্সপ্লেনার আর্টিকেল পাবলিশ করার রেপুটেশন বানিয়েছেন, উইন্ডোজ, লিনাক্স, এবং ওপেন সোর্স টুল কভার করে। তাঁর কাজ Technical Ustad, Windows Report, Guiding Tech, Alphr, এবং Next of Windows-র মতো টপ ওয়েবসাইটে ফিচার্ড হয়েছে।
তিনি কম্পিউটার সায়েন্সে প্রথম ডিগ্রী রাখেন এবং ডেটা প্রাইভেসি ও সিকিউরিটির প্রबल সমর্থক, এ বিষয়ে টিপস, ভিডিও, এবং টিউটোরিয়াল Fuzo Tech YouTube চ্যানেলে পাবলিশ করেছেন।
কাজ না থাকলে তিনি পরিবারের সাথে সময় কাটাতে, সাইকেল চালাতে, বা তার বাগান চাষ করতে পছন্দ করেন।
আমি লিনাক্স সেট আপ করলে, এটি সাধারণত প্রত্যাশা অনুযায়ী চলে। কোথাও ব্যাকগ্রাউন্ডে, এটি ফাইল তৈরি করে, কনফিগারেশন আপডেট করে, এবং ক্যাশে বিল্ড করে। কিন্তু যদি কিছু ভাঙা না থাকে, তবে আমি কখনো এই প্রসেসগুলো তাকিয়ে দেখি না।
একবার, আমি এটিকে আলাদা ভাবে করতে চেয়েছিলাম। আমি ব্যাকগ্রাউন্ডে যেটা ঘটছে সেটি রিয়েল-টাইমে দেখতে চেয়েছিলাম। তাই, আমি inotifywait কমান্ডটি ব্যবহার করলাম রিয়েল-টাইম এক্টিভিটি মনিটর করার জন্য। আমি চকিত হলাম এই কমান্ড কতটুকু পাওয়ারফুল। এটি দেখিয়েছে কিভাবে সবচেয়ে সিম্পল অ্যাকশনও কয়েকটি ব্যাকগ্রাউন্ড অপারেশন সৃষ্টি করতে পারে।
সকল কিছু ট্র্যাক করে লিনাক্স ফিচার
ফাইল অ্যাক্টিভিটি মনিটর করা আপনার চিন্তার চেয়ে সহজ
Inotify হলো একটি কার্নেল-লেভেল সাবসিস্টেম যা লিনাক্সে ভার্সন ২.৬.১৩-এ যোগ করা হয়েছিল। এই ফিচার রিয়েল-টাইম ফাইল সিস্টেম ইভেন্ট ক্যাপচার করে এবং সেগুলো ঘটার সাথে সাথে রিপোর্ট করে। এটি সিম্পলি কার্নেল আপনাকে পরিবর্তনগুলো নোটিফাই করে।
এটি 끊임없이 ফাইল 크িয়েশন, মডিফিকেশন, ডিলিশন, অ্যাক্সেস, এবং মুভ ট্র্যাক করে এই ইভেন্টগুলো রিপোর্ট করার জন্য। inotify-এর যা ভালো লাগলো সেটি হলো সাধারণ ব্যবহারে এটি মিনিমাম ওভারহেড যোগ করে। এর কারণ এটি সিম্পলি সিগন্যালগুলো রিপোর্ট করে যা কার্নেল ইতিমধ্যে জেনারেট করে; এটি কোনো ব্যাকগ্রাউন্ড স্ক্যানার চালায় না।
আপনি সরাসরি inotify-এর সাথে ইন্টারঅ্যাক্ট করতে পারবেন না, এবং সেজন্য আপনার inotify-tools দরকার। এটি দুটি ইউজার-স্পেস ইউটিলিটি প্রদান করে যা কার্নেল ফিচারটি টার্মিনাল থেকে ব্যবহারযোগ্য করে তোলে।
| কম্পোনেন্ট | কী করে |
|---|---|
| inotify | ফাইল সিস্টেম ইভেন্ট জেনারেট করে কার্নেল সাবসিস্টেম |
| inotifywait | ув Ereignisse আপনার টার্মিনালে লাইভ স্ট্রিম করে |
| 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" ডিরেক্টরি। আপনি যে ইভেন্টগুলো দেখবেন সেগুলোর ফরম্যাট: watched directory/event type/file that triggered the event। উদাহরণস্বরূপ, আপনার কাছে /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-এ ব্যাকগ্রাউন্ড অ্যাক্টিভিটির বিশাল পরিমাণ গুরুত্বপূর্ণ কারণ এটি συνεχু সেশন ডেটা ডিস্কে ফ্লাশ করে, যাতে ক্র্যাশের পর ট্যাবগুলো রিকভার করা যায়।
তবে, এই সবের মধ্যে, প্যাকেজ ইনস্টলেশন সবচেয়ে বেশি শব্দ সৃষ্টি করলো। আমি apt install চালালাম /var/lib/dpkg/ দেখতে, এবং আমি একটি lock-frontend ফাইল আগে আসা দেখলাম। এটি একটি গুরুত্বপূর্ণ মেকানিজম যা প্যাকেজ অপারেশন কনকারেন্টলি রান না করে সেটি নিশ্চিত করে। তারপর, প্যাকেজ ডেটাবেস জুড়ে অনেক রাইট হাপেনিং।
আমি যেসব তিন ডিরেক্টরি পর্যবেক্ষণ করলাম সেগুলোর মধ্যে যা কনসিস্টেন্ট ছিল সেটি হলো: কখনো এক একক ক্লিন ফাইল অপারেশন ছিল না। সেগুলো সব লেয়ার নিয়ে আসে।
রিয়েল লাইফে এটি কখন আসল উপকারী হয়
এটি একটি এক্সপেরিমেন্ট হিসেবে শুরু হলেও, কয়েক সেশনের মধ্যেই inotifywait একটি টুল হয়ে উঠলো যা আমি স্বাভাবিকভাবে ব্যবহার করি। এটি কনফিগারেশন ইস্যু ডিবাগ করার জন্য একটি গুরুত্বপূর্ণ টুল। কনফিগ ডিরেক্টরি দেখে এবং ওভাররাইট হওয়া ফাইলগুলো লক্ষ্য করে যেহেতু ঘটছে, আপনাকে কিছু ক্ল্যারিটি মিলতে পারে যখন একটি সেটিং বারবার নিজে থেকে রিসেট হচ্ছে।
আমি এটিও ব্যবহার করি যখন আমাকে অন 익숙 সফটওয়্যার ইভ্যালুয়েট করতে হয়। আমাকে আর অনুমান করতে হয় না যে সফটওয়্যারটি কোথায় ডেটা সেভ করছে, কারণ আমি এখন দেখতে পাচ্ছি এটি কী কী ছুঁছে। এটি অ্যাপগুলো আপনার এক্সপেক্টেড ডিরেক্টরির বাইরে কী লিখছে সেটি ধরার একটি সহজ উপায়।
তবে, আপনি inotifywait ব্যবহার করলে, খুব নויזি আউটপুটের জন্য প্রস্তুত থাকুন। একটি দ্বিতীয় সীমাবদ্ধতা হলো যদিও এটি দেখায় কী পরিবর্তন হয়েছে, কিন্তু কেন হয়েছে সেটি ব্যাখ্যা করে না। তা সত্ত্বেও, এটি লিনাক্স ম্যানেজ করার জন্য আমার সবচেয়ে উপকারী কমান্ডগুলোর একটি হয়ে উঠেছে।