NOC online · 24/7Longview, TX · +1 323 412 0665
KinetikatechServers · Security · Websites
AR

أوامر Linux ومهارات Shell

wget: أداة التنزيل التي لا تنام

wget عبارة عن حليقة للمهام التي يتم قياسها بالساعات: المرايا، والأرشيفات، وعمليات السحب العودية، ودفعات cron التي تعمل بينما لا أحد يشاهد. فهو يتكرر، ويكرم ملف robots.txt، ويستأنف عمليات النقل المتقطعة بشكل افتراضي، ويضبط نفسه مع حدود المعدل وفترات الانتظار، وهي عبارة عن تجعيد مجاملة يترك للمتصل. يكون التقسيم بين الأداتين نظيفًا: wget للحجم الكبير والصبر، وcurl للدقة، وفريق يعرف كلتاهما نادرًا ما يحتاج إلى أداة تثبيت ثالثة.

النقاط الرئيسية

  1. النسخ المتطابق عبارة عن سطر واحد: wget --mirror --convert-links --adjust-extension --no-parent https://docs.example.com; حذف --no-parent وأرشيف التوثيق يصبح بهدوء زحفًا لكل شيء فوقه.
  2. الاستئناف وإعادة المحاولة مجانًا: يختار wget -c عملية نقل احتياطية متقطعة، ويقوم --tries=10 --waitretry=5 بإخراج الخوادم التي تعاني من الفواق في منتصف الحجم بدلاً من فشل المهمة عند أول نشل.
  3. التأدب له علامات: --limit-rate=200k، --wait=1، و--random-wait تمنع المرآة من التعثر في حدود معدل المنبع أو شرط إساءة استخدام الخادم المشترك؛ الاستضافة المشتركة بالإضافة إلى الزاحف غير المقيد هي صداقة قصيرة.
  4. يتم احترام ملف robots.txt افتراضيًا؛ -e robots=off يتجاوزها عمدًا، واستخدام هذا التجاوز ضد موقع الإنتاج الخاص بشخص آخر هو الطريقة التي تتحول بها التنزيلات المجمعة إلى تذاكر حوادث.
  5. wget -O /dev/null -nv https://host/health هو مسبار مراقبة من سطر واحد تحمل أكواد الخروج التشخيص: 4 هو فشل في الشبكة، 8 هو خطأ في الخادم، وكلاهما يتفوق على cron الصامت.
  6. التحويل مهم بعد الحقيقة: --convert-links يعيد كتابة موقع معكوس للتنقل في وضع عدم الاتصال، و --adjust-extension يحفظ الصفحات التي تم إنشاؤها بواسطة CMS ضمن الامتدادات التي يمكن أن تخدمها الأدوات المحلية.
  7. تحصل المهام المجمعة في cron على ملفات قفل، أو تكتب عمليات التشغيل المتداخلة في الملفات غير المكتملة لبعضها البعض بينما يقوم --waitretry بتمديد المهمة بهدوء إلى ما بعد نافذتها؛ wget ليس لديه كائن المزامنة الداخلي.
  8. تعرف على الحدود: تنتمي النماذج والجلسات المزدحمة بملفات تعريف الارتباط ونقاط نهاية واجهة برمجة التطبيقات إلى تجعيد، وتعكس الصفحات المبنية على JavaScript كأصداف فارغة لأن wget يتبع الروابط، وليس البرامج النصية.

ملاحظة ميدانية

مرآة واحدة بدون --no-parent تجولت في أربعين غيغابايت من مكتبة الوسائط الخاصة بالعميل طوال الليل وملأت القرص تقريبًا. يتم تعيين أعلام المداراة مرة واحدة ويتم نسخها إلى الأبد بعد ذلك.

أسئلة شائعة

لماذا تحتوي مرآتي على صفحة واحدة فقط؟

قامت علامات النطاق بتنفيذ العمل الذي قصد شخص ما التراجع عنه: قيود ملف robots.txt، أو --no-parent، أو حد العمق، أو الموقع الذي يتم عرضه بواسطة JavaScript. يتبع wget الروابط التي يمكنه رؤيتها؛ تحقق من -o wget.log قبل إلقاء اللوم على الأداة.

متى يجب أن أختار wget over curl لتنزيل واحد؟

بالنسبة لأي شيء قابل للاستئناف أو موثوق به: استمرار -c، وإعادة المحاولة المضمنة، والطابع الزمني (--الطابع الزمني) يجعل wget خيار نطاق الاهتمام المنخفض؛ يمنحك حليقة نفس الشيء فقط إذا قمت بتجميعه بنفسك.

هل من القانوني أو المهذب عكس موقع عام؟

الملكية تقرر الجانب القانوني، وملف robots.txt والتحميل يقرران بشكل مهذب: احترام ملف الروبوتات، والتقليل من المعدل البشري، وتفضيل التصدير الرسمي أو واجهة برمجة التطبيقات (API) في اللحظة التي يقدم فيها الهدف واحدًا.

لماذا تقوم بعض المواقع بإرجاع 403 إلى wget العادي؟

تصفية وكيل المستخدم، عادةً ما تكون مقصودة؛ --user-agent='Mozilla/5.0' يمكنك من خلاله، ولكن الرقم 403 الذي تمت تصفيته يعني أيضًا أن المشغل يراقب، لذا فإن الحوار أو واجهة برمجة التطبيقات هي الخطوة التالية الأفضل.

كيف تساعدك Kinetikatech في أوامر linux ومهارات shell

لقد حللنا هذا مئات المرات: الأوامر وعادات البرمجة النصية التي تحدد ما إذا كان المسؤول يشغل الخادم أم يحاربه: البحث عن النصوص والعمليات وتحويلها ونقلها والإشراف عليها باستخدام الأدوات الموجودة في كل تثبيت أساسي. مع أمن خوادم لينكس و إدارة الخوادم تحصل على الدورة الكاملة: نقيّم وننفذ ونراقب على مدار الساعة ونستجيب خلال 30 دقيقة عندما يكون الأمر مهمًا.

تحدث مع مهندس

مشكلة في الخادم؟ موقع مخترق؟ موقع بطيء؟

نرد على الحالات الحرجة خلال 30 دقيقة — على مدار الساعة طوال الأسبوع.

اطلب دعم الطوارئ support@kinetikatech.com