আপনি হয়তো এই কথাটি শুনে এসেছেন, সবকিছুই লিনাক্সে একটি ফাইল। যদিও এটি পুরোপুরি সত্য নয়, এটি সত্যের একটি সেট ধরে রাখে।
লিনাক্স এবং ইউনিক্স-এর মতো সিস্টেমে সবকিছুই একটি ফাইলের মতো। এর মানে হল যে ইউনিক্স সিস্টেমের সম্পদগুলি একটি স্টোরেজ ডিভাইস, নেটওয়ার্ক সকেট, প্রসেস ইত্যাদি সহ একটি ফাইল বর্ণনাকারী নিয়োগ করে।
একটি ফাইল বর্ণনাকারী একটি অনন্য সংখ্যা যা একটি ফাইল এবং অন্যান্য ইনপুট/আউটপুট ডিভাইস সনাক্ত করে। এটি সম্পদ এবং কীভাবে কার্নেল তাদের অ্যাক্সেস করে তা বর্ণনা করে। এটিকে কার্নেল অ্যাবস্ট্রাকশন হার্ডওয়্যার রিসোর্সের প্রবেশপথ হিসেবে ভাবুন।
দুর্ভাগ্যবশত, ফাইল বর্ণনাকারীদের ধারণা এই টিউটোরিয়ালের আওতার বাইরে; আরও শিখতে শুরু করার জন্য নীচের দেওয়া লিঙ্কটি বিবেচনা করুন:
https://en.wikipedia.org/wiki/File_descriptor
এর মানে হল যে ইউনিক্স এবং ইউনিক্স-এর মতো সিস্টেম যেমন লিনাক্স এই ধরনের ফাইলগুলি ব্যাপকভাবে ব্যবহার করে। একটি লিনাক্স পাওয়ার ব্যবহারকারী হিসাবে, খোলা ফাইলগুলি এবং প্রক্রিয়া এবং ব্যবহারকারীদের সেগুলি ব্যবহার করা অবিশ্বাস্যভাবে দরকারী।
এই টিউটোরিয়ালটি ফাইলগুলি খোলা দেখার উপায় এবং কোন প্রক্রিয়া বা ব্যবহারকারী দায়ী তা নিয়ে আলোকপাত করবে।
পূর্ব প্রয়োজনীয়তা
আমরা শুরু করার আগে, নিশ্চিত করুন যে আপনার আছে:
- একটি লিনাক্স সিস্টেম
- রুট বা সুডো সুবিধা সহ ব্যবহারকারী
আপনার যদি এইগুলি থাকে, তাহলে আমাদের শুরু করা যাক:
এলএসওএফ ইউটিলিটি
ভিক্টর এ অ্যাবেল দ্বারা তৈরি, খোলা ফাইলগুলির তালিকা, বা সংক্ষেপে lsof, একটি কমান্ড-লাইন ইউটিলিটি যা আমাদের খোলা ফাইলগুলি এবং প্রক্রিয়াগুলি বা ব্যবহারকারীরা যারা তাদের খোলে তাদের দেখতে দেয়।
Lsof ইউটিলিটি প্রধান লিনাক্স বিতরণে উপলব্ধ; যাইহোক, আপনি এটি ইনস্টল করা নেই এবং এইভাবে ম্যানুয়ালি ইনস্টল করার প্রয়োজন হতে পারে।
কিভাবে ডেবিয়ান/উবুন্টুতে lsof ইনস্টল করবেন
ডেবিয়ানে এটি ইনস্টল করতে, কমান্ডটি ব্যবহার করুন:
sudo apt-get updatesudo apt-get installlsof-এবং
REHL/CentOS এ কিভাবে ইনস্টল করবেন
REHL এবং CentOS এ ইনস্টল করতে, কমান্ডটি ব্যবহার করুন:
sudodnf আপডেটsudoডিএনএফইনস্টলlsof
আর্চে কিভাবে ইনস্টল করবেন
আর্ক এ, কমান্ড ব্যবহার করে প্যাকেজ ম্যানেজারকে কল করুন:
sudoপ্যাকম্যান-হিসsudoপ্যাকম্যান-এসlsof
ফেডোরাতে কীভাবে ইনস্টল করবেন
ফেডোরাতে, কমান্ডটি ব্যবহার করুন:
sudo yum ইনস্টল করুনlsofএকবার আপনার lsof ইউটিলিটি ইনস্টল এবং আপডেট হয়ে গেলে, আমরা এটি ব্যবহার শুরু করতে পারি।
মৌলিক lsof ব্যবহার
Lsof টুল ব্যবহার করতে, কমান্ড লিখুন:
sudolsofএকবার আপনি উপরের কমান্ডটি চালানোর পরে, lsof নীচে দেখানো হিসাবে অনেক তথ্য ডাম্প করবে:
উপরের আউটপুট প্রক্রিয়া দ্বারা খোলা সমস্ত ফাইল দেখায়। আউটপুটে বিভিন্ন কলাম রয়েছে, প্রতিটি ফাইল সম্পর্কে নির্দিষ্ট তথ্য উপস্থাপন করে।
- কমান্ড কলাম - ফাইলটি ব্যবহার করা প্রক্রিয়াটির নাম দেখায়।
- পিআইডি - ফাইল ব্যবহার করে প্রসেস আইডেন্টিফায়ার দেখায়।
- টিআইডি - প্রক্রিয়ার টাস্ক আইডি (থ্রেড) দেখায়।
- TASKCMD - টাস্ক কমান্ডের নাম উপস্থাপন করুন।
- ব্যবহারকারী - প্রক্রিয়ার মালিক।
- এফডি - ফাইল বর্ণনাকারী নম্বর দেখায়। এইভাবে প্রসেস ফাইল ব্যবহার করে; এই কলাম আউটপুটে উপলব্ধ বিকল্পগুলির মধ্যে রয়েছে:
- cwd - বর্তমান কাজের ডিরেক্টরি।
- মেম -মেমরি-ম্যাপ করা ফাইল
- pd - মূল নির্দেশিকা
- jld - জেল ডিরেক্টরি
- ltx - শেয়ার্ড লাইব্রেরি টেক্সট
- rtd - রুট ডিরেক্টরি.
- txt - প্রোগ্রাম কোড এবং ডেটা
- এনএস - কার্নেল ট্রেস ফাইল।
- ভুল - ফাইল বর্ণনাকারী তথ্য ত্রুটি
- এমএমপি -মেমরি-ম্যাপ করা ডিভাইস।
- প্রকার - ফাইলের সাথে যুক্ত নোডের ধরন দেখায়, যেমন:
- ইউনিক্স - ইউনিক্স ডোমেইন সকেটের জন্য।
- তোমাকে - ডিরেক্টরি প্রতিনিধিত্ব করে
- REG - নিয়মিত ফাইলের প্রতিনিধিত্ব করে
- সিএইচআর - বিশেষ ক্যারেক্টার ফাইলের প্রতিনিধিত্ব করে।
- লিঙ্ক - প্রতীকী লিঙ্ক ফাইল
- বিএলকে - বিশেষ ফাইল ব্লক করুন
- ইন্টারনেট - ইন্টারনেট ডোমেইন সকেট
- ফিফো - একটি নামযুক্ত পাইপ (ফার্স্ট ইন ফার্স্ট আউট ফাইল)
- পাইপ - পাইপের জন্য
এবং আরো অনেক.
- ডিভাইস - বিশেষ অক্ষর ফাইলের ক্রম অনুসারে কমা দ্বারা বিভক্ত ডিভাইস নম্বরগুলি দেখায়, বিশেষ, নিয়মিত, ডিরেক্টরি এবং NFS ফাইলকে ব্লক করে।
- সাইজ/অফ - ফাইলের আকার দেখায় PR ফাইলের অফসেট বাইটে।
- নোড - স্থানীয় ফাইলের নোড নম্বর, ইন্টারনেট প্রোটোকল টাইপের টাইপ ইত্যাদি দেখায়।
- নাম - মাউন্ট পয়েন্টের নাম দেখায় এবং fs যেখানে ফাইলটি অবস্থিত।
বিঃদ্রঃ: কলামগুলির বিস্তারিত তথ্যের জন্য দয়া করে lsof ম্যানুয়াল পড়ুন।
একটি ফাইল খোলা প্রক্রিয়াগুলি কীভাবে দেখানো যায়
Lsof আমাদেরকে এমন বিকল্প প্রদান করে যা আমাদের আউটপুট ফিল্টার করতে সাহায্য করে শুধুমাত্র একটি নির্দিষ্ট ফাইল খোলা প্রসেস দেখাতে।
উদাহরণস্বরূপ, যে ফাইলটি /bin /bash ফাইলটি খুলেছে তা দেখতে, কমান্ডটি ব্যবহার করুন:
sudolsof/আমি/বাশএটি আপনাকে নীচে দেখানো হিসাবে একটি আউটপুট দেবে:
কমান্ড পিআইডি ব্যবহারকারী এফডি টাইপ ডিভাইসের আকার/নোড নাম বন্ধ করুনksmtuned1025রুট txt REG253,0 1150704 428303 /ইউএসআর/আমি/বাশ
বাশ 2968centos txt REG253,0 1150704 428303 /ইউএসআর/আমি/বাশ
বাশ 3075centos txt REG253,0 1150704 428303 /ইউএসআর/আমি/বাশ
একটি নির্দিষ্ট ব্যবহারকারী দ্বারা খোলা ফাইলগুলি কীভাবে দেখান
আমরা একটি নির্দিষ্ট ব্যবহারকারীর দ্বারা খোলা ফাইলগুলি দেখানোর জন্য আউটপুট ফিল্টার করতে পারি। ব্যবহারকারীর নাম অনুসারে -u পতাকা ব্যবহার করে আমরা এটি করি:
sudolsof-উশত শতএটি আপনাকে নীচে দেখানো হিসাবে একটি আউটপুট দেবে:
একটি নির্দিষ্ট প্রক্রিয়া দ্বারা খোলা ফাইলগুলি কীভাবে দেখানো যায়
ধরুন আমরা একটি নির্দিষ্ট প্রক্রিয়া দ্বারা খোলা সমস্ত ফাইল দেখতে চাই? এর জন্য, আমরা আউটপুট ফিল্টার করার জন্য প্রক্রিয়াটির PID ব্যবহার করতে পারি।
উদাহরণস্বরূপ, নিচের কমান্ডটি ব্যাশ দ্বারা খোলা ফাইলগুলি দেখায়।
sudolsof-পি 3075এটি আপনাকে দেখানো হিসাবে systemd দ্বারা খোলা ফাইলগুলি দেবে:
একটি ডিরেক্টরিতে খোলা ফাইলগুলি কীভাবে দেখানো যায়
একটি নির্দিষ্ট ডিরেক্টরিতে ফাইলগুলি খোলার জন্য, আমরা নির্দেশিকা পথ অনুসরণ করে +D বিকল্পটি পাস করতে পারি।
উদাহরণস্বরূপ, /etc ডিরেক্টরিতে খোলা ফাইলগুলি তালিকাভুক্ত করুন।
sudolsof +D/ইত্যাদিনিচে এর জন্য আউটপুট দেওয়া হল:
কিভাবে নেটওয়ার্ক কানেকশন দেখাবেন
যেহেতু লিনাক্সের সবকিছুই একটি ফাইল, তাই আমরা নেটওয়ার্ক ফাইল যেমন TCP ফাইল বা সংযোগ পেতে পারি।
আমরা কমান্ড ব্যবহার করতে পারি:
sudolsof-আইটিসিপিএটি আপনাকে সিস্টেমে টিসিপি সংযোগ দেবে।
আপনি নীচের দেখানো কমান্ড ব্যবহার করে নির্দিষ্ট পোর্ট দ্বারা ফিল্টার করতে পারেন:
sudolsof-আই:22এটি আপনাকে নীচে দেখানো আউটপুট দেবে:
কীভাবে ধারাবাহিকভাবে ফাইল দেখানো যায়
Lsof প্রতি কয়েক সেকেন্ডে আউটপুট লুপ করার জন্য আমাদের একটি মোড প্রদান করে। এটি আপনাকে একটি প্রক্রিয়া বা ব্যবহারকারী দ্বারা ক্রমাগত খোলা ফাইলগুলি পর্যবেক্ষণ করতে দেয়।
এই বিকল্পটি, তবে, আপনাকে প্রক্রিয়াটি ম্যানুয়ালি বন্ধ করতে হবে।
উদাহরণস্বরূপ, নিচের কমান্ড ক্রমাগত পোর্ট 22 এ খোলা ফাইলগুলি পর্যবেক্ষণ করে:
sudolsof -r-আই:22
আপনি দেখতে পাচ্ছেন, তৃতীয় লুপে, lsof SSH- এ সার্ভারের প্রতিষ্ঠিত সংযোগটি ধরে ফেলে।
উপসংহার
Lsof একটি অবিশ্বাস্যভাবে দরকারী ইউটিলিটি। এটি আপনাকে সমালোচনামূলক ফাইলগুলির পাশাপাশি মনিটর ব্যবহারকারীদের এবং ফাইলগুলি খোলার প্রক্রিয়াগুলি পর্যবেক্ষণ করতে দেয়। সমস্যা সমাধান বা সিস্টেমে দূষিত প্রচেষ্টা খুঁজলে এটি অবিশ্বাস্যভাবে কার্যকর হতে পারে।
এই টিউটোরিয়ালে দেখানো হয়েছে, বিভিন্ন উদাহরণ এবং পদ্ধতি ব্যবহার করে, আপনি কাস্টম মনিটরিংয়ের জন্য lsof টুল দ্বারা প্রদত্ত কার্যকারিতা একত্রিত করতে পারেন।
পড়ার এবং শেয়ার করার জন্য আপনাকে ধন্যবাদ! আমি আশা করি আপনি নতুন কিছু শিখেছেন!