লিনাক্স কমান্ড এবং শেল দক্ষতা
খুঁজুন: লিনাক্স অনুসন্ধান যা সবকিছু করে
একটি প্রোডাকশন সার্ভারে খুঁজে পাওয়া সবচেয়ে বিপজ্জনক কমান্ড, এবং ঠিক এই কারণেই এটি আয়ত্তের যোগ্য। এটি একটি অভিব্যক্তিতে গণনা করে, ফিল্টার করে এবং কার্যকর করে, এবং প্রতিটি ক্লাসিক '/var এখানে ড্রাগনস' ঘটনাটি কেউ এড়িয়ে যাওয়া একটি পূর্বরূপের সন্ধান করে। অভ্যাসগুলি যান্ত্রিক: প্রথমে -প্রিন্ট বা -লসের সাথে চলুন, -এক্সেক ... + এর সাথে ব্যাচ করুন, -প্রিন্ট0 এর মাধ্যমে xargs -0 এ পাইপ করুন এবং -ডিলিটকে দ্বিতীয়-পাস সিদ্ধান্ত হিসাবে বিবেচনা করুন, কখনই প্রথম খসড়া নয়।
মূল বিষয়সমূহ
- মেটাডেটাতে ফিল্টার করুন, শুধু নাম নয়: -type f, -mtime +30, -size +100M, এবং -perm -o+w অদ্ভুত ফাইলগুলি সনাক্ত করুন যেগুলি নামকরণের নিয়ম এবং বয়স রিপোর্ট উভয়ই মিস করে৷
- প্রতিটি ধ্বংসাত্মক প্রশ্নের পূর্বরূপ দেখুন: খুঁজে দেখুন /var/www/uploads -name 'core.*' -ls প্রথমে, swap -ls for -delete শুধুমাত্র আপনি তালিকাটি পড়ার পরেই; প্রিভিউ হল নিরাপত্তা পরীক্ষা, কোন পরামর্শ নয়।
- -exec cmd {} + ফাইলগুলিকে কয়েকটি আমন্ত্রণে ব্যাচ করে এবং \ কে বীট করে; বড় গাছের উপর ফর্ম; একটি যুক্তি-তালিকা-খুব-দীর্ঘ ত্রুটি ছাড়াই একই সিনট্যাক্স ক্ষমতা 'এক প্রক্রিয়ায় প্রতিটি মিলে যাওয়া ফাইল'।
- ডিফল্টরূপে নাল-নিরাপদ আউটপুট: খুঁজুন। -নাম '*.পুরাতন' -প্রিন্ট0 | xargs -0 rm -v; xargs-এ প্লেইন পাইপ একটি পরিচিত ডেটা-লস প্যাটার্ন যেদিন একটি ফাইলের নাম একটি স্পেস ধারণ করে।
- -xdev এবং -maxdepth হাঁটাকে সৎ রাখে: তারা মাউন্ট এবং স্ন্যাপশট অনুসরণ করা থেকে খুঁজে পাওয়া বন্ধ করে, যা রানটাইম এবং 'এই ডিরেক্টরি' সম্পর্কে আপনার অনুমান উভয়ই উদ্ধার করে।
- যদি সঠিকভাবে জিজ্ঞাসা করা হয় তবে সময় উইন্ডোগুলি সুনির্দিষ্ট: -mmin -1440 গত 24 ঘন্টা, -newermt '2026-01-01' একটি তারিখ থেকে, এবং মনে রাখবেন -xtime মানে টিকিটে উদ্ধৃত করার আগে 'n full 24-hour periods ago'৷
- ইচ্ছাকৃতভাবে ছাঁটাই: খুঁজুন। -পথ '*/node_modules' -prune -o -name '*.js' -প্রিন্ট একটি ডিরেক্টরিকে এড়িয়ে যায় যা অন্যথায় আকার এবং সময়ের মধ্যে বাকি গাছের চেয়ে বেশি।
- অপঠিত ডিরেক্টরিতে ননজিরো এক্সিট আশা করুন; 'অনুমতি অস্বীকার'-এর মতো stderr লাইনগুলি এড়িয়ে যাওয়া ফাইল, ডেটা নয়, তাই স্ক্রিপ্টগুলি হয় ফাইন্ডের প্রস্থান স্থিতি সহ্য করে বা পরিষ্কারভাবে হাঁটার পরিবর্তে এটিকে স্পষ্টভাবে পরীক্ষা করে।
মাঠের নোট
আমাদের সবচেয়ে খারাপ ফাইন্ড-ডিলিট গল্পটি একটি উদ্ধৃতিবিহীন -নাম প্যাটার্ন দিয়ে শুরু হয়েছিল যেটি দ্বিতীয় শেলটি তিনটি শব্দে প্রসারিত হয়েছিল। নিয়মটি সহজ: -প্রথম মুদ্রণ করুন, সর্বদা উদ্ধৃতি করুন এবং -মুছে ফেলুন প্রথমবার চালানোর সময় কমান্ডে রাইড করে না।
সচরাচর জিজ্ঞাসা
আমার খুঁজে পাওয়া ফাইল কিন্তু ডাউনস্ট্রিম কমান্ড কিছুই করেনি। কেন?
প্রায় সবসময় উদ্ধৃতি বা খালি ইনপুট: প্যাটার্নটি শেল দ্বারা প্রসারিত করা হয়েছিল এটি দেখার আগে, বা xargs কিছুই পায়নি। উদ্ধৃতি নিদর্শন, এবং জোড়া -print0 সঙ্গে xargs -0 প্রতি একক সময়।
- ডিলিট বা আরএম খোঁজার পর?
-মুছে ফেলা সরাসরি, দ্রুত এবং ক্ষমাহীন; এটি একই অভিব্যক্তিতে -exec এর সাথে মিশ্রিত করা যাবে না। প্রথমে ম্যাচিং চালান -প্রিন্ট করুন এবং এটি পড়ুন; এটাই পুরো শৃঙ্খলা।
কেন সিস্টেম ডিরেক্টরিতে মুদ্রণ অনুমতি ত্রুটি খুঁজে পায়?
যে উপাদানগুলো আপনি stderr-এ প্রিন্ট এরর পড়তে পারবেন না এবং খুঁজে বের করতে পারবেন না ননজিরো; ইন্টারেক্টিভ আরামের জন্য 2>/dev/null দিয়ে ফিল্টার করুন এবং ফাইলের অনুপস্থিতি হিসাবে সেই ত্রুটিগুলিকে কখনই ব্যাখ্যা করবেন না।
আবার -mtime এবং -ctime মধ্যে পার্থক্য?
-mtime হল বিষয়বস্তু পরিবর্তন, -ctime হল মেটাডেটা পরিবর্তন (অনুমতি, নাম পরিবর্তন, হার্ডলিংক গণনা); একটি chown বা একটি মুভ এমটাইম স্পর্শ না করেই ctime ধাক্কা দেয়, যা এক চতুর্থাংশ রিপোর্টকে বিভ্রান্ত করে।
লিনাক্স কমান্ড এবং শেল দক্ষতা নিয়ে Kinetikatech কীভাবে সাহায্য করে
ব্যবসাটা সহজ: কমান্ড এবং স্ক্রিপ্টিং অভ্যাস যা নির্ধারণ করে যে একজন প্রশাসক একটি সার্ভার পরিচালনা করে বা এটির সাথে লড়াই করে: অনুসন্ধান, রূপান্তর, স্থানান্তর, এবং টেক্সট এবং প্রক্রিয়াগুলিকে তত্ত্বাবধান করে যা প্রতিটি বেস ইনস্টলে থাকে। এটা আমাদের Linux সার্ভার নিরাপত্তা and সার্ভার ব্যবস্থাপনা সেবার হাতে দিন। ঠিকভাবে মূল্যায়ন হবে, পরিষ্কারভাবে বাস্তবায়ন হবে, আর দিনে-রাতে নজরদারিতে থাকবে।