k-এর মতো সহজে প্রসেসের লিসেনিং পোর্টগুলি পরীক্ষা করতে এবং ব্যবহৃত পোর্ট ও পরিষেবাগুলি সহজে আউটপুট করতে চাই
নমস্কার, আমি অযোগ্য।
ওহোহো, শিরোনামে এমন একটি বাক্য ব্যবহার করা হয়েছে যা আমার কোথাও শোনা মনে হচ্ছে...
এখনও মাঝে মাঝে মনে হয় ওটা একটা ভালো সাইটের নাম। এই দিনগুলিতে, আমার স্বাস্থ্য পরীক্ষায় রক্তচাপ 60-100 এর মধ্যে একদম কম এসেছে।
দ্বিতীয়বার পরিমাপ করা মানটি পুরোপুরি কম রক্তচাপ ছিল, তাই স্বাভাবিকভাবেই প্রথম পরিমাপের মানটি ব্যবহার করা হয়েছিল।
ভূমিকা
হঠাৎ
আমার মনে হলো, 'আমি ব্যবহৃত পোর্ট এবং তাদের পরিষেবাগুলি কী, তা সহজে আউটপুট করতে চাই'।
আমি ভেবেছিলাম।
কারণ হলো
- ব্যক্তিগতভাবে পরিচালনা করার সময়, সার্ভার কনফিগারেশন ডায়াগ্রাম ছাড়াই সহজে পরীক্ষা এবং আউটপুট করতে চাই।
- আমি md ফরম্যাট বা টেক্সট ফাইলে আউটপুট করতে চাই।
- ব্যবহৃত পোর্টগুলি পরীক্ষা করা
সত্যি বলতে, আমি নিজে যত বেশি জিনিস চালাচ্ছি, তত বেশি ভুলে যাচ্ছি কোন পোর্টগুলি ব্যবহার করছিলাম?
এমন অনেক ঘটনা ঘটছে, এবং একবার আমার প্রয়োজনীয় তথ্যগুলি একত্রিত হলে, আমি এটিকে কিছুটা স্ক্রিপ্ট করে → .md ফরম্যাটের ফাইল হিসাবে সহজে পরীক্ষা করতে চাই।
যাইহোক, আমি কেন টেক্সট ফাইল নিয়ে এত আগ্রহী, তার কারণ হলো
ডেটা পরিচালনা করা সহজ হয়।
এই বিষয়ে আমি পরে লিখব।
সহজভাবে শুধু এই একটি কমান্ড টাইপ করলেই হবে
lsof -i -P -n | grep "LISTEN" | awk '{print $1 "," $3 "," $9}' | sort | uniq
তাহলে
$ lsof -i -P -n | grep "LISTEN" | awk '{print $1 "," $3 "," $9}' | sort | uniq
pulseaudi,haturatu,*:38169
pulseaudi,haturatu,*:44409
pulseaudi,haturatu,*:4713
এভাবে আউটপুট দেয়।
যাইহোক, lsof অপশন ছাড়া আউটপুট একই হয়, কিন্তু BSD সংস্করণে এটি ভিন্ন বলে মনে হয়, তাই আমি সমস্ত অপশন ব্যবহার করছি।
CSV-তে রূপান্তর
ফাইল ফরম্যাট হিসাবে অনেক কিছু বলা হলেও, আমি CSV ফরম্যাট পছন্দ করি।
সত্যি বলতে, CSV ফাইল হিসাবে ব্যবহার করার সময় CSV খারাপ নয় বলে মনে হয়। একমাত্র স্বাভাবিক বিষয় হলো, যদি sed দিয়ে কমা প্রতিস্থাপন করা হয় এবং যদি কোনো স্ট্রিং-এর মধ্যে কমা ব্যবহার করা হয়, তাহলে সেটিও প্রতিস্থাপিত হয়ে যাবে কিনা, তা নিয়ে একটু চিন্তা হয়।
TSV এখনও সাধারণভাবে পরিচিত নয়, তাই CSV ভালো। (সত্যি বলতে, sed দিয়ে প্রতিস্থাপন করলে কমা এবং ট্যাবের মধ্যে কোনটি কম ভুল হবে...)
আমি বিষয় থেকে কিছুটা সরে গেছি, কিন্তু যদি সহজে CSV-তে রূপান্তর করা যায়, তাহলে সরাসরি Excel-এ কপি-পেস্ট করা যাবে এবং শুধু খুললেই পঠনযোগ্যতা বেশি থাকবে।
সহজভাবে স্ট্যান্ডার্ড আউটপুটকে .csv হিসাবে রিডাইরেক্ট করে LibreOffice বা অন্য কোনো প্রোগ্রামে সহজে খোলা যাবে। এরপর TCP ও UDP তথ্য যোগ করব।
$ lsof -i -P -n | grep "LISTEN" | awk '{print $1 "," $3 "," $9 "/" $8}' | sort | uniq > test.csv

এমন দেখাবে
এভাবে করলে
তুলনামূলকভাবে সহজে ভিজ্যুয়ালাইজ করা যেতে পারে।
সত্যি বলতে, প্রথমে আমি `printf %10s` বা এরকম কিছু দিয়ে স্পেস না দিয়ে `print " "` দিয়ে অগোছালোভাবে আউটপুট দিচ্ছিলাম, কিন্তু CSV ফরম্যাটের জন্য একটি কমান্ড হিসাবে, শেষ পর্যন্ত column কমান্ডে পাইপ করে দিলে কমান্ডটি নিজেই আরও স্পষ্ট এবং দেখতে সহজ মনে হয়...
যদি মার্কডাউন ফরম্যাটে রূপান্তর করা হয়
প্রথমে আমি md ফরম্যাট অনুসরণ করে একটি টেবিল তৈরি করার কথা ভেবেছিলাম, কিন্তু md ফরম্যাটের টেবিলগুলি আমার খুব একটা পছন্দ নয়, তাই কপি-পেস্ট করার সুবিধার জন্য "```" ব্যবহার করাই ভালো মনে হলো।
প্রয়োজন হলে awk দিয়ে প্রিন্ট করে আউটপুট দেব।
md ফরম্যাটে আউটপুট করার উদ্দেশ্য হলো, যদি এটি একটি ক্রন জব হিসাবে চালানো হয় যা নিয়মিতভাবে গিটহাব বা অনুরূপ কোনো ব্যক্তিগত রিপোজিটরিতে পুশ করে, তাহলে যেকোনো সময় সহজে এটি পরীক্ষা করা যাবে।
অন্যান্য প্রয়োজনীয় বিষয় বিবেচনা করা
এরপর ডিস্কের ধারণক্ষমতা পরীক্ষা করার জন্য df -h, vmstat, free ইত্যাদি ব্যবহার করা যেতে পারে, তবে এটি সিস্টেমের সামগ্রিক রিসোর্স মনিটরিংয়ের দিকে চলে যাবে, তাই সম্ভবত /proc/cpuinfo, /proc/meminfo বা অনুরূপ স্থান থেকে তথ্য নেওয়া যেতে পারে...
যদি DB টেবিলের তথ্য সহজে ভিজ্যুয়ালাইজ করা যায়, তাহলে আরও ভালো হবে। যদি এটি করা হয়, তাহলে which * দিয়ে কিছু DB-সম্পর্কিত কমান্ড চালিয়ে এবং শুধুমাত্র স্ট্যাটাস কোড 0 ফেরত আসা কমান্ডগুলির জন্য নির্দিষ্ট DB তথ্য আউটপুট করা আরও পুঙ্খানুপুঙ্খ হবে। তবে এটি করতে আমার কিছুটা অনীহা আছে।
কনফিগারেশন ডায়াগ্রামগুলি ব্যক্তিভেদে বেশ ভিন্ন হয়, এবং আমি বুঝি যে মিডলওয়্যার পণ্যগুলির জন্য বিস্তারিত ডিজাইন ডকুমেন্ট অবশ্যই প্রয়োজনীয়, তবে সিস্টেমের সামগ্রিক চিত্রটি যদি একটি জায়গায় একত্রিত না হয় তবে তা পরীক্ষা করা কঠিন, তাই আমি ব্যক্তিগতভাবে এটি আরও সহজে পরিচালনা করার কোনো উপায় আছে কিনা তা ভাবছি।
draw.io-এর মতো সরঞ্জাম দিয়ে সহজে ডায়াগ্রাম তৈরি করা সহজ, তবে আমি সেই ডায়াগ্রাম তৈরির যাচাইকরণ খরচও কমাতে চাই।
বোনাস: ওয়্যারগার্ডের নীরবতা
যাইহোক, এটি করার সময় আমি ভেবেছিলাম, lsof দিয়ে ওয়্যারগার্ড UDP51820 হিসাবে চলছে, তাহলে কেন এটি দেখাচ্ছে না? তখন আমি উত্তরটি পেলাম।
the wireguard not listening on port after started
Raspberry Pi で WireGuard + VPS
মনে হচ্ছে এটি একটি কার্নেল মডিউল হিসাবে কাজ করে। আমার নিজস্ব ব্যাখ্যা অনুযায়ী, ওয়্যারগার্ড লেয়ার 3 এ কাজ করে, এবং "প্রসেস দ্বারা খোলা ফাইলগুলি" দেখায়, তাই এটি আউটপুট করে না কিনা তা আমি ভাবছিলাম। এটা কি ভুল?
যাইহোক, রেড হ্যাট-এর জাপানি ডকুমেন্টেশন বেশ সহজে বোঝা যায়।
অধ্যায় 8 ওয়্যারগার্ড ভিপিএন সেট আপ করা
তো, আজ এই পর্যন্তই। যদি অন্য কোনো ভালো কিছু মনে আসে, তাহলে হয়তো এর ধারাবাহিকতা লিখব, অথবা লিখব না।
আবারও, আপনাদের সহযোগিতা কামনা করছি।