লিনাক্স কমান্ড এবং শেল দক্ষতা
curl: কমান্ড-লাইন ওয়েব ক্লায়েন্ট যা ওয়েব চালায়
curl হল প্রতিটি অপারেশন টুলবক্সের পকেট HTTP ক্লায়েন্ট: ডায়াগনস্টিক, পাইপলাইন-বান্ধব, এবং যা ফিরে এসেছে সে সম্পর্কে সৎ। এর পতাকা পৃষ্ঠটি বিশাল দেখায় এবং বেশিরভাগই খেলার মধ্যে নেই: প্রায় এক ডজন পতাকা প্রতিদিনের কার্যক্ষম ব্যবহারকে কভার করে এবং সেগুলি জানা স্ক্রিপ্টযুক্ত স্বাস্থ্য পরীক্ষা এবং ভাগ্যবানদের মধ্যে পার্থক্য। যে নিয়মটি সর্বাধিক পেজিং সংরক্ষণ করে তা তুচ্ছ: প্রতিবার --max-time সেট করুন, কারণ কার্লের ধৈর্য অসীম এবং আপনার নয়।
মূল বিষয়সমূহ
- ডাউনলোড করার আগে দেখুন: curl -sSI https://host রিটার্ন পদ্ধতি, শিরোনাম, এবং একটি বডি ছাড়া স্থিতি; add -v যখন TLS হ্যান্ডশেক, প্রক্সি, বা হোস্ট হেডার অদ্ভুতভাবে আচরণ করে।
- টাইমআউট ডিসিপ্লিন অ-আলোচনাযোগ্য: --কানেক্ট-টাইমআউট 5 ডেড কানেকশন মেরে ফেলে, --max-টাইম 15 ধীর কানেকশন মেরে ফেলে; উভয় ছাড়া একটি স্বাস্থ্য পরীক্ষা বিভ্রাট এটি সনাক্ত করার অনুমিত ছিল অতিক্রম করতে পারে.
- প্রস্থান কোড হল স্ক্রিপ্টের চুক্তি: 7 হল সংযোগ প্রত্যাখ্যান, 28 হল সময় শেষ, 22 হল একটি HTTP ত্রুটি --fail দ্বারা প্রকাশিত; কোড পড়ুন, শুধু আউটপুট নয়, বা আপনার পর্যবেক্ষণ কিছুই শেখে না।
- এনফোর্সমেন্টের সাথে পেয়ার ভিজিবিলিটি: -w '%{http_code} %{time_total}\n' রিপোর্ট করে কি ঘটেছে, যখন --fail-with-body ত্রুটির মূল অংশটি প্রকাশ করে; এগুলোর একটি ছাড়া ব্যর্থতা ঠিক সাফল্যের মতো দেখায়।
- ব্যবহারকারীরা আসলে কী আঘাত করেছে তা পরীক্ষা করুন: --resolve example.com:443:10.1.2.3 DNS গেম ছাড়াই একটি নামযুক্ত ব্যাকএন্ড পরীক্ষা করে এবং -H 'হোস্ট: vhost.example.com' একই অনুরোধের vhost পাশ কভার করে।
- স্থানান্তরগুলি ইচ্ছাকৃত ফ্ল্যাগগুলি পায়: -o আউটপুটের নাম দেয়, -L আপনার পর্যালোচনা করা পুনঃনির্দেশ অনুসরণ করে, --retry 3 --retry-delay 2 ফ্ল্যাকি আপস্ট্রিমগুলিকে নরম করে, এবং -F মাল্টিপার্ট আপলোডগুলি পরিচালনা করে যেগুলি কখনই পাত্তা দেয় না৷
- শিরোনাম এবং সকেটগুলি অ-ব্রাউজার বিশ্ব বহন করে: -H 'অনুমোদন: বহনকারী ...' API-এর জন্য এবং --unix-socket /run/app/app.sock স্থানীয় পরিষেবাগুলি অনুসন্ধান করতে যা TCP-কে কখনও স্পর্শ করে না।
- দুটি ক্লাসিক ফাঁদ জানুন: প্রক্সি এনভায়রনমেন্ট ভেরিয়েবল একটি অনুরোধ হাইজ্যাক করে যা -v সেকেন্ডের মধ্যে প্রকাশ করে, এবং পুনঃনির্দেশ করে যা একটি পোস্টকে GET-এ পরিণত করে যদি না আপনি এটি বোঝাতে চান৷
মাঠের নোট
পনের মিনিটের জন্য ঝুলে থাকা স্বাস্থ্য পরীক্ষাটি একটি ক্রোন লুপের ভিতরে --ম্যাক্স-টাইম ছাড়াই কার্ল ছিল, এবং এটি শনাক্ত করার অনুমিত বিভ্রাটকে অতিক্রম করেছে। নীতিগতভাবে টাইমআউট এখন URL-এর আগে চলে যায়।
সচরাচর জিজ্ঞাসা
কেন কার্ল প্রস্থান 0 যখন সাইট একটি 500 ফেরত?
কার্ল এর সাফল্য মানে পরিবহন কাজ; HTTP-স্তরের ত্রুটিগুলি --fail (প্রস্থান 22) বা -w থেকে %{http_code} পড়া ছাড়া অদৃশ্য। মনিটরিং স্ক্রিপ্ট দুটির একটির উপর জোর দেয়।
স্ক্রিপ্টের জন্য কার্ল বা wget?
API, হেডার, পোস্ট বডি এবং সুনির্দিষ্ট নিয়ন্ত্রণের জন্য কার্ল; মিররিং এবং পুনরাবৃত্তির জন্য wget। এক-শটের জন্য GET হয় কাজ করে, এবং একটি পাইপলাইন উভয়কে মিশ্রিত করা সাধারণত একটি চিহ্ন যা কেউ সিদ্ধান্ত নেয়নি যে কোনটি কাজের মালিক।
TLS যাচাইকরণ এড়িয়ে যাওয়া কি কখনো ন্যায়সঙ্গত?
একটি স্ব-স্বাক্ষরিত ল্যাব শংসাপত্রের বিরুদ্ধে একটি ইন্টারেক্টিভ ডায়গনিস্টিক জন্য, কখনও কখনও; স্ক্রিপ্টেড বা ক্রন-চালিত কিছুতে, না। -k একমাত্র চেকটি নিষ্ক্রিয় করে যা একজন মধ্যম-মানুষকে আপনার স্থানান্তরের মালিক হতে বাধা দেয়।
একটি ধীর অনুরোধ আসলে স্টল কোথায় আমি কিভাবে খুঁজে পেতে পারি?
টাইমিং ভেরিয়েবল: -w 'dns:%{time_namelookup} connect:%{time_connect} tls:%{time_appconnect} ttfb:%{time_starttransfer} মোট:%{time_total}\n' কয়েকবার চালানো ব্যাকএন্ড স্টল থেকে হ্যান্ডশেক ব্যথা থেকে ডিএনএস ফ্লিকনেসকে আলাদা করে।
লিনাক্স কমান্ড এবং শেল দক্ষতা নিয়ে Kinetikatech কীভাবে সাহায্য করে
লিনাক্স কমান্ড এবং শেল দক্ষতা বিষয়ে আপনাকে বিশেষজ্ঞ হতে হবে না: কমান্ড এবং স্ক্রিপ্টিং অভ্যাস যা নির্ধারণ করে যে একজন প্রশাসক একটি সার্ভার পরিচালনা করে বা এটির সাথে লড়াই করে: অনুসন্ধান, রূপান্তর, স্থানান্তর, এবং টেক্সট এবং প্রক্রিয়াগুলিকে তত্ত্বাবধান করে যা প্রতিটি বেস ইনস্টলে থাকে। Linux সার্ভার নিরাপত্তা and সার্ভার ব্যবস্থাপনা ঠিক এই কাজের জন্যই আছে — সেটআপ, হার্ডেনিং, পর্যবেক্ষণ, আর দিনে-রাতে ফোনে থাকা একজন মানুষ।