Bash + rclone · OneDrive ↔ Google Drive · دليل تشغيل مفتوح المصدر
نقل سحابي للنسخ فقط باستخدام Bash وrclone
يفهم rclone بالفعل تقسيم نتائج الخدمات السحابية إلى صفحات، وإعادة المحاولة، وعمليات النقل القابلة للاستئناف، وقيم التجزئة الخاصة بموفّري الخدمات. وتتمثل المهمة الهندسية في إحاطة هذه العناصر الأساسية بإجراء تشغيلي يتوقف بأمان عند الخطأ ويراعي السعة.
آخر تحديث ; 20 دقيقة للقراءة.
الإجابة المختصرة
يُعد FileArk الخيار المُدار الأبسط لعمليات الترحيل الكبيرة أو غير الخاضعة للمراقبة؛ فهو ينفّذ النقل عبر الإنترنت، وقد اختُبر مع أحمال عمل متعددة التيرابايت، ويتحقق من كل نتيجة قبل الإكمال. أما المشغّلون الذين يريدون مسار بيانات تتحكم فيه الصدفة، فيمكنهم استخدام هذا البرنامج المغلّف المكتوب بلغة Bash والمرخّص بموجب MIT، إذ ينسخ دفعات محدودة عبر تجهيز مرحلي محلي، ويتحقق من مرحلتي النقل بايتًا ببايت، ولا يحذف ملفات المصدر مطلقًا.
لماذا نستخدم برنامجًا مغلّفًا حول rclone بدلًا من إعادة بناء عميل لكل موفّر خدمة؟
يوفّر rclone لسير العمل عبر الصدفة طبقة تجريد ناضجة لموفّري الخدمات، وإعداد OAuth، وتقسيم النتائج إلى صفحات، وآلية لإعادة المحاولة، وعمليات نقل قابلة للاستئناف، وعناصر تحكم في التزامن، وأوامر لجرد المحتويات والتحقق منها. لذلك يمكن للبرنامج المغلّف التركيز على ثوابت الترحيل: أوامر النسخ فقط، والتجهيز المرحلي المحدود، واحتياطيات السعة، وقوائم الملفات الحتمية، والتقدم المحفوظ بصورة دائمة.
لكن ذلك لا يجعل المهمة تلقائية. يظل المشغّل مسؤولًا عن إعداد الوجهات البعيدة، وأمان الرموز، واستمرارية الشبكة، والإشراف على العملية، والقرص المحلي، والسجلات، وحدود موفّري الخدمات، ومراجعة العناصر الفاشلة، وقبول الوجهة. صُمم FileArk للمستخدمين الذين يريدون تنفيذ هذا الإجراء كسير عمل مُدار عبر الإنترنت بدلًا من تشغيله على محطة عملهم أو خادمهم.
لا يستدعي البرنامج النصي صراحةً أوامر rclone move أو sync أو delete أو purge أو rmdirs مطلقًا. ويستخدم lsf وabout للاستكشاف، وcopy لكل مرحلة، وcheck --download للتحقق من جميع البايتات. ولا تُجرى الإزالة إلا لملف جرى التحقق منه من دليل التجهيز المرحلي المحلي.
تنزيل إصدار Bash وترخيص MIT
تنزيل برنامج النقل باستخدام Bash وrclone
برنامج مغلّف للنسخ فقط، يوفّر حدودًا للدفعات، واحتياطيات محلية وفي الوجهة، وتحققًا من جميع البايتات، ونقاط تحقق، وعناصر تحكم في إعادة المحاولة، وعرضًا توضيحيًا لا يتطلب شبكة.fileark-cloud-transfer.sh · Bash 4+ · rclone · jq · ترخيص MIT
نزّل ترخيص MIT
إشعار الإذن الذي يغطي برنامجي FileArk النصيين للنقل اليدوي.LICENSE-fileark-cloud-transfer.txt · MIT · نص عادي
شغّل العرض التوضيحي للمشغّل من دون اتصال بالشبكة

يمكن تشغيل العرض التوضيحي بأمان قبل تثبيت rclone أو jq، لأن تحليل الوسيطات ينتهي قبل التحقق من التبعيات. وتُسمّي المخرجات العمليات الإتلافية المحظورة، وتعرض احتياطيي السعة، وتنتهي بعدد عمليات حذف الملفات من المصدر.
chmod +x fileark-cloud-transfer.sh
bash -n fileark-cloud-transfer.sh
./fileark-cloud-transfer.sh --demo
./fileark-cloud-transfer.sh --helpثبّت تبعيات المشغّل واضبط إعداداتها
ثبّت إصدارًا حديثًا من rclone باتباع تعليماته الرسمية، وثبّت jq من خلال مدير حزم نظام التشغيل. يلزم Bash 4 أو إصدار أحدث لأن البرنامج المغلّف يستخدم معالجة صارمة للأخطاء وتعبيرات شرطية حديثة.
شغّل rclone config وأنشئ وجهتين بعيدتين باسمين مستقلين، مثل onedrive: وgdrive:. أدخل معرّف العميل والسر الخاصين بك لدى موفّر الخدمة عندما تتطلب السياسة أو حدود المعدل تطبيقات OAuth مخصصة. يخزّن rclone رموز OAuth في ملف الإعداد الخاص به؛ احمِ هذا الملف بأذونات مقيّدة ولا ترفقه مطلقًا مع البرنامج النصي.
تحقق من كل وجهة بعيدة باستخدام أمر لسرد المحتويات للقراءة فقط وأمر للحصة قبل تشغيل البرنامج المغلّف. استخدم مسارات مثل onedrive:Department/Archive عندما يقتصر النطاق على شجرة فرعية.
rclone version
rclone config
rclone lsd onedrive:
rclone lsd gdrive:
rclone about onedrive: --json | jq
rclone about gdrive: --json | jqثبّت قائمة محتويات حتمية قبل نقل البايتات
يستخدم البرنامج المغلّف الأمر rclone lsf بشكل تكراري مع تحديد علامة التبويب فاصلًا وتنسيق sp، ما ينتج الحجم متبوعًا بالمسار. ويتحقق من أن كل حجم رقمي وأن كل مسار نسبي، ثم يستبعد المسارات الموجودة بالفعل في نقطة التحقق المعتمدة.
يرفض إصدار Bash أسماء الملفات التي تحتوي على علامات تبويب أو أحرف إرجاع أو أسطر جديدة، لأن قوائم --files-from-raw المحددة بأسطر جديدة لا تستطيع تمثيلها دون التباس. استخدم إصدار Python أو تنسيقًا مخصصًا لجرد المحتويات عند وجود مثل هذه الأسماء.
تتميز نقطة التحقق المستندة إلى المسار بالبساطة وسهولة الفحص عن قصد. وهي تفترض بقاء مسارات المصدر ثابتة أثناء التشغيل. أوقف الكتابة إلى المصدر إن أمكن، أو أعد إنشاء قائمة المحتويات ووفّق بينها عند توقع تغييرات متزامنة.
rclone lsf "$SOURCE" \
--recursive \
--files-only \
--format "sp" \
--separator