كل خدمة تخزين سحابي تأتي بأدواتها الخاصة، ولا يتصل بعضها ببعض، فنقل مجلد كبير من Google Drive إلى OneDrive يعني غالبا تنزيله كاملا ثم رفعه يدويا. وتسد أداة Rclone هذه الفجوة، وهي أداة سطر أوامر مجانية ومفتوحة المصدر تقدم طبقة وسيطة تفهم لغة كل خدمة تخزين، وتتيح فوقها أوامر موحدة لنسخ الملفات ومزامنتها وتشفيرها، سواء إلى خدمة واحدة أو بين خدمتين سحابيتين مباشرة.
تطبيقات المزامنة الرسمية تربط جهازك بخدمة واحدة فقط، ولا تقدم طريقة موحدة لجدولة النسخ إلى أكثر من خدمة، ولا لتشفير الملفات قبل أن تغادر الجهاز. ولهذا يصف مشروع Rclone أداته بأنها «rsync للتخزين السحابي»، نسبة إلى أداة rsync المعروفة لمزامنة الملفات على أنظمة يونكس ولينكس، ويقترب مستودعه على GitHub من ستين ألف نجمة.

ما هو Rclone
Rclone برنامج مكتوب بلغة Go، يأتي في هيئة ملف تنفيذي واحد لا يحتاج إلى مكتبات إضافية، ويعمل على Windows وmacOS ولينكس وFreeBSD. بدأه المطور Nick Craig-Wood في نوفمبر 2012، وحمل اسمه الحالي في يونيو 2013، وما زال Craig-Wood يقود تطويره ويوقع إصداراته بنفسه. والبرنامج مجاني بالكامل برخصة MIT، ويدعمه رعاة بينهم شركات تخزين مثل Dropbox وIDrive e2 وFiles.com. ويعد الإصدار 1.75.1 أحدث إصدار مستقر للبرنامج (صدر في 4 سبتمبر 2026 بإصلاحات أمنية).
وظيفة Rclone الأساسية نقل الملفات بين أي مكانين للتخزين، وحول هذه الوظيفة تتفرع استعمالاته:
- نسخ الملفات احتياطيا إلى السحابة، مع تشفيرها قبل الرفع إن أردت.
- نقل البيانات كاملة من مزود تخزين إلى آخر.
- الإبقاء على نسخة مطابقة لمجلد في مكان آخر.
- عرض التخزين السحابي على الجهاز كأنه قرص أو مجلد محلي.
- تقديم ملفات أي تخزين للأجهزة الأخرى عبر بروتوكولات مثل WebDAV وSFTP وHTTP.
يذكر موقع المشروع أن Rclone يدعم أكثر من 70 نظام تخزين، وتتجاوز القائمة في مستودعه 120 اسما لأنها تعد كل مزود متوافق مع واجهة S3 على حدة. وتشمل هذه الأنظمة خدمات التخزين الشخصي مثل Google Drive وOneDrive وDropbox وBox وpCloud، وخدمات تخزين الكائنات (object storage) مثل Amazon S3 وCloudflare R2 وBackblaze B2 وAzure Blob Storage وGoogle Cloud Storage، والبروتوكولات العامة مثل SFTP وFTP وWebDAV وSMB، إضافة إلى القرص المحلي نفسه.
ولأن مستوى الدعم يختلف من خدمة إلى أخرى، أضاف المشروع إلى توثيقه في يناير 2026 تصنيفا للخدمات في خمس درجات: من «أساسي» (Core) للخدمات المختبرة بالكامل وذات الاستعمال الواسع، إلى «تجريبي» (Experimental) و«متقادم» (Deprecated). فإن كنت ستعتمد على Rclone مع خدمة أقل شهرة، فراجع درجتها في صفحة الدرجات (Tiers) أولا.
الفكرة التي يقوم عليها: الريموت ومسار remote:path
أول ما يفعله المستخدم في Rclone هو تسجيل خدمة التخزين لمرة واحدة. ويطلق البرنامج على الخدمة المسجلة اسم «ريموت» (remote): وهو اسم يختاره المستخدم، مثل gdrive أو backup، ويقترن بنوع الخدمة وبيانات الدخول إليها. وتحفظ هذه الريموتات كلها في ملف إعداد واحد اسمه rclone.conf.
بعد ذلك تشير إلى أي مجلد في تلك الخدمة بالصيغة name:path. فالمسار gdrive:Photos/2026 يعني مجلد Photos/2026 داخل الريموت الذي سميته gdrive، والمسار العادي بلا نقطتين مثل ~/Documents يعني مجلدا على جهازك. والأقرب لتصور هذه الفكرة هو نظام حروف الأقراص في Windows: فكما يشير C: إلى قرص محلي وD: إلى قرص آخر، يشير gdrive: إلى حسابك في Google Drive وs3: إلى حسابك في Amazon S3، والأوامر نفسها تعمل على الجميع.
ومن هذه الفكرة تأتي أهم قدرات البرنامج: النقل بين خدمتين سحابيتين بأمر واحد، مثل rclone copy gdrive:Docs onedrive:Docs. لكن البيانات في هذه الحالة تمر عبر الجهاز الذي يشغل Rclone، فهو ينزل كل ملف من المصدر ثم يرفعه إلى الوجهة، ولذلك يحتاج الجهاز إلى اتصال جيد في الاتجاهين، وقد يدفع صاحب الحساب رسوم خروج البيانات (data egress fees) التي يفرضها بعض مزودي تخزين الكائنات، مثل Amazon S3، على كل جيجابايت ينزل من عندهم. ويستثنى من ذلك النقل داخل الخدمة نفسها حين تدعم «النسخ من جهة الخادم» (server-side copy)، كنسخ مجلد من مكان إلى آخر في Google Drive نفسه أو بين حاويتين عند مزود S3 واحد: هنا يطلب Rclone من الخدمة أن تنسخ الملف عندها، فلا يمر بالجهاز أصلا.
وتوجد فئة ثانية من الريموتات لا تتصل بخدمة تخزين، بل تغلف ريموتا آخر وتضيف إليه وظيفة. أشهرها ريموت التشفير crypt: تنشئه فوق مجلد في Google Drive مثلا، فيصبح كل ما تكتبه فيه مشفرا قبل وصوله إلى Google.
كيف يقرر Rclone ما الذي ينقله
لا ينسخ Rclone كل الملفات في كل مرة. قبل النقل يقارن كل ملف في المصدر بنظيره في الوجهة، وإن وجدهما متطابقين في الحجم ووقت التعديل (modification time) تجاوزه. ولهذا تكون المرة الأولى بطيئة لأنها تنقل كل شيء، ثم تصبح المرات التالية سريعة لأنها تنقل الجديد والمعدل وحده.
ويمكن طلب مقارنة أدق بالخيار --checksum، فيقارن البرنامج البصمة الرقمية (hash) لكل ملف بدل وقت التعديل، وهي قيمة مثل MD5 أو SHA-1 تتغير إن تغير أي بايت في الملف. وهذا مفيد حين لا يمكن الوثوق بأوقات التعديل. لكنه يتطلب أن تدعم الخدمتان نوع بصمة مشتركا؛ فإن لم تشتركا في نوع واحد، تراجع البرنامج تلقائيا إلى مقارنة الحجم وحده (نمط --size-only) متجاهلا البصمة ووقت التعديل معا. وحين تتوفر البصمة المشتركة يستعملها Rclone أيضا بعد كل نقل ليتأكد من سلامة وصول الملف دون أي تلف.
وهنا فرق جوهري بين Rclone وrsync: Rclone ينقل الملف كاملا دائما، ولا ينقل الأجزاء المتغيرة منه فقط كما يفعل rsync. والسبب في طبيعة التخزين السحابي نفسه، فخدماته لا تسمح بتعديل بضعة بايتات في منتصف ملف مرفوع، بل تستبدل الملف كله. وكان يمكن الالتفاف على ذلك بتخزين الفروق بين النسخ بدل الملفات نفسها، لكن Rclone يتعمد أن يبقى كل ملف في السحابة نسخة كاملة من نظيره على جهازك، فتراه وتفتحه في واجهة الخدمة كما هو. والنتيجة العملية أن تعديل بايت واحد في ملف حجمه 10 جيجابايت يعني رفع 10 جيجابايت من جديد، وهذا يهم من يزامن صور الأقراص الافتراضية أو ملفات قواعد البيانات الكبيرة.
الأوامر الأساسية: copy وsync وmove وbisync
أربعة أوامر تغطي معظم الاستعمال، والفرق بينها في ما تفعله بالوجهة وبالمصدر:
| الأمر | ما يفعله | هل يحذف شيئا؟ | الاستعمال المعتاد |
|---|---|---|---|
copy |
ينسخ الملفات الجديدة والمعدلة من المصدر إلى الوجهة | لا يحذف أبدا | النسخ الاحتياطي الآمن، ورفع ملفات جديدة |
sync |
يجعل الوجهة مطابقة للمصدر تماما | يحذف من الوجهة ما ليس في المصدر | الإبقاء على مرآة (mirror) لمجلد |
move |
ينقل الملفات ثم يحذفها من المصدر | يحذف من المصدر بعد النقل الناجح | تفريغ مجلد إلى السحابة |
bisync |
يزامن في الاتجاهين، فتنتقل التغييرات من كل طرف إلى الآخر | ينقل الحذف من كل طرف إلى الآخر | إبقاء مجلدين متطابقين يعدل فيهما من الجهتين |
sync: الأمر الأكثر فائدة والأكثر خطرا
ولهذا يضع Rclone عدة حواجز يحسن استعمالها:
- الخيار
--dry-run(أو-n) يعرض ما سيفعله الأمر من نسخ وحذف دون أن ينفذ شيئا، ويحسن أن تجرب به كل أمرsyncجديد قبل تنفيذه فعلا. - الخيار
--interactive(أو-i) يطلب تأكيدك قبل كل عملية حذف أو استبدال، ويوصي التوثيق باستعماله أثناء تعلم البرنامج. - الخيار
--backup-dirلا يحذف الملفات ولا يستبدلها، بل ينقلها إلى مجلد جانبي بترتيبها الأصلي، فيمكن استعادتها. ويشترط أن يكون هذا المجلد على الريموت نفسه الذي عليه الوجهة، وألا يكون داخل مجلد الوجهة. - الحذف مؤجل افتراضيا حتى نهاية العملية، ولا يحدث أصلا إن وقع أي خطأ أثناء المزامنة. فانقطاع الاتصال في منتصف العملية لا يترك الوجهة نصف محذوفة.
bisync: المزامنة في الاتجاهين
أمر bisync متاح منذ الإصدار 1.58، ويناسب مجلدا تعدل فيه من جهازك ومن السحابة معا. وهو يعمل بمقارنة الحالة الحالية لكل طرف بقائمة ملفات حفظها في آخر تشغيل، فيعرف ما أضيف وما عدل وما حذف في كل جهة منذ ذلك الحين، ثم ينقل التغيير إلى الجهة الأخرى.
ولأنه يعتمد على قائمة سابقة، يحتاج التشغيل الأول إلى الخيار --resync لبناء هذه القائمة: يجمع ملفات الطرفين ويجعل كلا منهما يحتوي على ملفات الطرفين معا. وبعد ذلك يجب حذف --resync من التشغيلات التالية، لأن بقاءه يعيد كل ملف محذوف من أحد الطرفين بنسخه من الطرف الآخر، فلا ينتقل الحذف أبدا.
وحين يعدل الملف نفسه في الجهتين بين تشغيلين، يعد ذلك تعارضا (conflict). والسلوك الافتراضي أن يحتفظ Rclone بالنسختين معا بعد إعادة تسمية إحداهما بلاحقة مثل .conflict1، ويمكن تغيير ذلك بالخيار --conflict-resolve ليفوز الأحدث أو الأكبر أو طرف بعينه. ويحمي bisync البيانات أيضا بإيقاف العملية إن كانت ستحذف أكثر من نصف الملفات في أي طرف، لأن هذا غالبا علامة خطأ لا نية حقيقية.
والأهم في فهم bisync أنه ليس مزامنة لحظية كتطبيق Dropbox الذي يراقب المجلد باستمرار؛ بل هو أمر يعمل عند استدعائه ثم ينتهي، ويوصي توثيقه بجدولته دوريا كل 5 دقائق إلى 60 دقيقة عبر cron في لينكس أو «جدولة المهام» في Windows. وله حدود معروفة: إعادة تسمية مجلد تعامل كحذف المجلد القديم وإنشاء مجلد جديد، فيعاد نسخ محتواه كله، وتعديل الملفات أثناء التشغيل قد يسبب فقدان بيانات. ويصف التوثيق الأمر بأنه متقدم، ويطلب قراءة دليله كاملا قبل استعماله.
أوامر مساندة
إلى جانب الأوامر الأربعة السابقة، يكثر استعمال أوامر أخرى مساندة مثل: rclone check لمقارنة مسارين والتأكد من تطابقهما دون نقل شيء، وrclone ls لعرض الملفات وrclone lsd لعرض المجلدات، وrclone size لحساب الحجم الإجمالي، وrclone ncdu الذي يعرض استهلاك المساحة في واجهة تفاعلية داخل الطرفية للتنقل بين المجلدات ومعرفة ما يشغل المساحة الأكبر.
التثبيت
يوفر المشروع سكربت تثبيت رسميا للينكس وmacOS، وحزمة عبر winget في Windows:
# Linux / macOS: official install script
sudo -v ; curl https://rclone.org/install.sh | sudo bash
# Windows (PowerShell)
winget install Rclone.Rclone
# Verify the installed version, then update in place later
rclone version
rclone selfupdateإعداد أول ريموت
يبدأ الإعداد بأمر rclone config، وهو معالج تفاعلي يعمل داخل الطرفية. تختار n لإنشاء ريموت جديد، وتكتب له اسما، ثم تختار نوع الخدمة من قائمة مرقمة، وتجيب عن أسئلة تختلف بحسب الخدمة. في خدمات تخزين الكائنات مثل S3 تدخل مفتاح الوصول (access key) والمفتاح السري (secret key). أما الخدمات الشخصية مثل Google Drive وOneDrive وDropbox فتستعمل بروتوكول OAuth: يفتح Rclone صفحة في المتصفح تسجل فيها الدخول وتمنح الإذن، ثم يحفظ رمز الدخول (token) في ملف الإعداد.
بعد الإعداد تتأكد أن الريموت يعمل بأمرين:
rclone listremotes # list configured remotes
rclone lsd gdrive: # list top-level folders on the "gdrive" remoteوإن كنت تعد Rclone على خادم بلا واجهة رسومية ولا متصفح، فأجب بالنفي حين يسألك المعالج عن فتح المتصفح. سيطلب منك حينها تشغيل الأمر rclone authorize على جهاز آخر فيه متصفح، ثم لصق الرمز الناتج في معالج الإعداد على الخادم. والبديل أن تعد الريموت على جهازك ثم تنسخ ملف الإعداد إلى الخادم.
ملف الإعداد وحمايته
يقع ملف الإعداد في %APPDATA%\rclone\rclone.conf على Windows، وفي ~/.config/rclone/rclone.conf على الأنظمة الأخرى، ويعرض الأمر rclone config file مكانه بالضبط. وهذا الملف أثمن من أي ملف آخر يتعامل معه Rclone، لأنه يحمل رموز الدخول إلى كل حساباتك. وكلمات المرور المكتوبة فيه مموهة (obscured) لا مشفرة تشفيرا حقيقيا؛ إذ يعتمد التمويه على مفتاح ثابت ومكشوف في الشيفرة المصدرية للبرنامج، مما يمنع قراءتها بالنظر العابر فقط، بينما يستطيع أي شخص يصل إلى الملف أن يفك هذا التمويه ويستعيد كلمة المرور الأصلية بسهولة عبر البرنامج نفسه. أما رموز الدخول فمكتوبة فيه كما هي.
لذلك يتيح Rclone تشفير ملف الإعداد كله بكلمة مرور، من الخيار s) Set configuration password داخل rclone config. بعدها يطلب البرنامج كلمة المرور عند كل تشغيل، ويمكن تمريرها في السكربتات المجدولة عبر متغير البيئة RCLONE_CONFIG_PASS. وإن نسيت هذه الكلمة فلا توجد طريقة لاستعادة الملف، وعليك إعداد الريموتات من جديد.
تنبيه لمستخدمي Google Drive وGoogle Photos
ويجري إنشاء المعرف من منصة Google Cloud Console: تنشئ مشروعا، وتفعل فيه Google Drive API، وتعد شاشة الموافقة (OAuth consent screen) وتضيف نفسك مستخدما تجريبيا، ثم تنشئ عميل OAuth من نوع «تطبيق سطح مكتب» (Desktop app). وبعدها تنشر التطبيق من صفحة الجمهور (Audience)، لأن Google تنهي رموز الدخول الممنوحة لتطبيق في وضع الاختبار بعد سبعة أيام. تنسخ المعرف والسر الناتجين إلى إعداد الريموت، ثم تشغل rclone config reconnect gdrive: ليحصل على رمز دخول جديد مرتبط بالمعرف الجديد. والخطوات مفصلة في صفحة Google Drive من توثيق Rclone. وللمعرف الخاص فائدة أخرى غير الاستمرارية: حدود عدد الطلبات في Google تحسب لكل معرف، فلا تتقاسمها مع آلاف المستخدمين.
أوامر عملية للاستعمال اليومي
هذه أمثلة تغطي أكثر المهام شيوعا. الخيار -P في معظمها يعرض تقدم النقل وسرعته مباشرة:
# Copy a local folder to the cloud (never deletes anything)
rclone copy ~/Documents gdrive:Backup/Documents -P
# Preview a mirror before running it for real
rclone sync ~/Projects s3:my-bucket/projects --dry-run
# Mirror, but move replaced or deleted files into a dated archive folder
rclone sync ~/Projects s3:my-bucket/current --backup-dir s3:my-bucket/archive/2026-09-27 -P
# Copy all data from one provider to another
rclone copy gdrive:Archive onedrive:Archive -P --transfers 8
# Verify that two locations match without transferring anything
rclone check ~/Photos gdrive:Photos
# Skip temporary files and a dependency folder, copy only recent files
rclone copy ~/work remote:work --exclude "*.tmp" --exclude "node_modules/**" --max-age 7d
# Limit bandwidth to 5 MiB/s during the transfer
rclone copy ~/Videos b2:videos --bwlimit 5Mوتستحق قواعد الترشيح (filters) في المثال السادس توضيحا، لأن أخطاءها من أكثر ما يتكرر في منتدى المشروع. النمط *.tmp يستثني أي ملف ينتهي بهذه اللاحقة. والنمط node_modules/** يستثني المجلد بكل ما بداخله، لأن ** تعني «أي شيء في أي عمق» بينما * لا تتجاوز حدود المجلد الواحد. والنمط الذي يبدأ بشرطة مائلة مثل /cache/** يطابق المجلد في جذر المصدر فقط، لا أي مجلد بهذا الاسم في أي مكان. وإن اجتمعت عدة قواعد، طبق Rclone أول قاعدة تطابق الملف وتجاهل الباقي، فترتيبها يؤثر في النتيجة. أما الخيار --max-age 7d فيقصر النسخ على الملفات المعدلة في آخر سبعة أيام.
ولأن كل أمر من هذه الأوامر ينفذ مرة واحدة ثم ينتهي، فإن إجراء النسخ الدوري يتطلب جدولته: عبر خدمة cron في لينكس وmacOS، أو أداة «جدولة المهام» (Task Scheduler) في Windows.
التشفير من جهة العميل: crypt
مزود الخدمة السحابية يستطيع تقنيا قراءة الملفات المخزنة عنده، وأي اختراق لحسابك يكشفها. ويحل التشفير من جهة العميل (client-side encryption) هذه المشكلة بتشفير الملفات على جهازك قبل رفعها، فلا تصل إلى السحابة إلا بيانات معماة يتعذر فكها دون كلمة المرور المحفوظة لديك.
في Rclone يتم هذا بريموت من نوع crypt يغلف ريموتا آخر. تنشئه من rclone config كأي ريموت، وتحدد له المكان الذي سيخزن فيه ملفاته المشفرة، مثل gdrive:vault، ثم تختار كلمة مرور وكلمة ثانية اختيارية تعمل كملح (salt). فإن سميته secret، فكل ما تنسخه إلى secret: يشفر قبل وصوله إلى مجلد vault في Google Drive، وكل ما تقرؤه منه يفك تشفيره تلقائيا. أما من يفتح المجلد في واجهة Google Drive فيرى ملفات بأسماء عشوائية ومحتوى غير مقروء.
rclone copy ~/Private secret:Private -P # encrypted on the way up
rclone ls secret:Private # decrypted names on the way back
rclone cryptcheck ~/Private secret:Privateوهنا يظهر دور أمر cryptcheck؛ إذ يعجز أمر rclone check المعتاد عن مقارنة البصمات لأن بصمة الملف المشفر في السحابة تختلف حتما عن بصمة الأصل غير المشفر على جهازك. أما أمر cryptcheck فيقرأ من ترويسة كل ملف مشفر القيمة العشوائية (nonce) التي استخدمت في تشفيره، ويشفر بها الملف المحلي مؤقتا على جهازك، ثم يقارن بصمة الناتج ببصمة الملف المخزن في السحابة. وبهذا يتأكد من سلامة النسخة المشفرة ومطابقتها دون الحاجة إلى تنزيلها كاملة، بشرط أن تدعم خدمة التخزين المستهدفة نوعا من البصمات الرقمية.
ويعتمد التشفير على خوارزميات معروفة ومختبرة. يقسم محتوى كل ملف إلى قطع بحجم 64 كيلوبايت، وتشفر كل قطعة بخوارزمية XSalsa20 ويضاف إليها رمز تحقق (authenticator) بخوارزمية Poly1305، وهو التركيب المعروف باسم NaCl SecretBox. ورمز التحقق هذا يكشف أي عبث بالملف المخزن عند قراءته. أما مفتاح التشفير فيشتق من كلمة المرور بخوارزمية scrypt، المصممة لتجعل تخمين كلمات المرور بطيئا ومكلفا للغاية ضد هجمات القوة الغاشمة. وتشفر أسماء الملفات والمجلدات في الوضع الافتراضي (standard) بنمط EME المعتمد على خوارزمية AES-256 وترميز Base32، مما يضمن تشفيرا حتميا يمكن البرنامج من البحث عن الملفات وتصفح المجلدات دون فك تشفير الهيكل كاملا. ويمكن بدلا من ذلك الاكتفاء بتمويه الأسماء (obfuscate)، وهو تمويه ضعيف لا يعتمد عليه، أو ترك الأسماء دون تشفير (off).
وللتشفير حدود يجب معرفتها:
- ما لا يخفيه: حجم كل ملف (بدقة 16 بايت تقريبا)، ووقت تعديله، وعدد الملفات، وبنية المجلدات من حيث العدد والعمق. فمن يرى السحابة يعرف أن لديك ملفا حجمه 3.2 جيجابايت، وإن لم يعرف اسمه ولا محتواه.
- طول الأسماء: الاسم المشفر أطول من الأصلي، وفي الوضع الافتراضي يصبح الحد الأقصى لاسم الملف نحو 143 حرفا، وقد تتجاوز المسارات العميقة حدود بعض الخدمات.
- كلمة المرور هي كل شيء: لا توجد طريقة لاستعادة الملفات دون كلمة المرور. وملف الإعداد يحفظها مموهة فقط، فإن ضاع الملف ولم تكن تحفظ الكلمة في مكان آخر ضاعت البيانات. احفظ كلمة المرور والملح في مدير كلمات مرور، لا في ملف الإعداد وحده.
- تغيير كلمة المرور يعني إعادة الرفع: لا يمكن تغيير المفتاح على الملفات المرفوعة، بل تنشئ ريموتا مشفرا جديدا وتنقل إليه البيانات.
تركيب السحابة كقرص محلي: mount
أمر rclone mount يعرض أي ريموت كأنه مجلد على جهازك في لينكس وmacOS، أو كحرف قرص في Windows. تفتح الملفات في مستكشف الملفات وتشغلها في أي برنامج، وRclone ينزل ما يطلب منها عند الحاجة فقط. وهذا مفيد حين يكون حجم السحابة أكبر من مساحة القرص المحلي، كمكتبة وسائط كبيرة أو أرشيف مستندات تحتاج ملفا منه بين حين وآخر.
ويحتاج التركيب إلى طبقة من نظام التشغيل تسمح لبرنامج عادي بتقديم نظام ملفات: FUSE في لينكس، وWinFsp في Windows، وmacFUSE أو FUSE-T في macOS. ويقدم Rclone على macOS بديلا لا يحتاج أيا منهما هو rclone nfsmount، الذي يشغل خادم NFS محليا ثم يركبه النظام.
# Linux / macOS: mount in the background with a local write cache
rclone mount gdrive: ~/GoogleDrive --vfs-cache-mode writes --daemon
# Windows: mount as drive letter G: (requires WinFsp)
rclone mount gdrive: G: --vfs-cache-mode writes
# Linux: unmount
fusermount -u ~/GoogleDriveلماذا يحتاج التركيب إلى ذاكرة تخزين مؤقت
الخيار --vfs-cache-mode هو أهم إعداد في mount، ويحتاج فهمه إلى معرفة الفرق بين القرص والسحابة. البرامج العادية تفترض أنها تعمل على قرص: تفتح الملف، وتقفز إلى منتصفه، وتكتب بضعة بايتات، ثم تعود إلى بدايته. أما التخزين السحابي فيتعامل مع الملف كتلة واحدة: يرفعه كاملا أو ينزله كاملا. والتخزين المؤقت المحلي (VFS cache) هو الوسيط بين العالمين، فيعمل البرنامج على نسخة من الملف على قرصك المحلي، ثم يرفعها Rclone إلى السحابة بعد انتهاء الكتابة.
والأوضاع أربعة، كل منها يوسع ما يمكن فعله على حساب مساحة أكبر على القرص:
off(الافتراضي): لا تخزين مؤقت. القراءة والكتابة المتتالية تعملان، لكن كثيرا من البرامج تفشل لأنها لا تستطيع التعديل في منتصف الملف أو فتحه للقراءة والكتابة معا، ولا يعاد رفع الملف إن فشل رفعه.minimal: يخزن مؤقتا الملفات المفتوحة للقراءة والكتابة معا فقط، فيحل جزءا من المشكلة.writes: كل ما يكتب يمر عبر القرص المحلي أولا، وتقرأ الملفات مباشرة من السحابة. يوفر توافقا كاملا مع البرامج، ويعيد محاولة الرفع إن فشل. وهو الخيار المناسب لمعظم الاستعمالات.full: تمر القراءة والكتابة كلتاهما عبر القرص المحلي، مع تنزيل الأجزاء المطلوبة من الملف فقط عند طلبها. وهو الوضع الأنسب لعمليات القراءة العشوائية غير المتسلسلة (random access)، مثل تشغيل مقاطع الفيديو الطويلة التي يقفز فيها المشغل بين مواضع مختلفة.
ويحدد الخيار --vfs-cache-max-size أقصى مساحة يشغلها هذا التخزين، فإذا امتلأ حذف Rclone منه الملفات التي لم تستعمل منذ أطول مدة.
ولا يجعل التركيب السحابة قرصا حقيقيا مهما كان الإعداد. فسرعة فتح الملفات تتبع سرعة الاتصال، والملفات غير متاحة دون إنترنت ما لم تكن في التخزين المؤقت، ولا يدعم التركيب الروابط الصلبة (hard links). وخدمات تخزين الكائنات مثل S3 وB2 لا تحفظ المجلدات الفارغة أصلا، لأنها تخزن ملفات بمسارات لا مجلدات حقيقية. فالتركيب يصلح للتصفح والوصول العرضي، ولا يحل محل تطبيق مزامنة يحفظ الملفات على الجهاز.
تقديم الملفات للأجهزة الأخرى: serve
الأمر rclone serve يعمل في الاتجاه المعاكس: يجعل أي ريموت متاحا للأجهزة الأخرى عبر أحد البروتوكولات القياسية: HTTP وWebDAV وFTP وSFTP وDLNA وNFS وS3، إضافة إلى واجهة REST التي تفهمها أداة النسخ الاحتياطي restic. ومن استعمالاته العملية تقديم ريموت مشفر عبر WebDAV داخل الشبكة المنزلية، فيفتحه أي جهاز يدعم WebDAV ويرى الملفات مفكوكة التشفير دون أن يعرف شيئا عن Rclone.
الواجهة الرسومية: rclone gui
ظل Rclone برنامج سطر أوامر في الأساس، وكانت له منذ الإصدار 1.49 (أغسطس 2019) واجهة ويب تجريبية منفصلة. وفي الإصدار 1.74 (مايو 2026) أعيد بناء هذه الواجهة ودمجت داخل البرنامج نفسه، فصار يكفي تشغيل:
rclone guiيشغل هذا الأمر خادمين على جهازك: خادم التحكم عن بعد (remote control) الذي تنفذ عبره العمليات، وخادما يقدم صفحات الواجهة. ثم يولد اسم مستخدم وكلمة مرور تلقائيا، ويفتح المتصفح وقد سجل الدخول. وتضم الواجهة لوحة (Dashboard) تعرض حالة الريموتات والمساحة المتاحة فيها، ومستكشفا (Explorer) لتصفح الملفات وبدء عمليات النقل، وقسما لتركيب الريموتات (Mounts)، وآخر لتشغيل خوادم serve، وصفحة إعدادات تعدل منها rclone.conf مباشرة. ويجب أن تبقى نافذة الطرفية مفتوحة ما دامت الواجهة مستعملة.
وتوجد كذلك واجهات رسومية من أطراف أخرى مبنية فوق Rclone، مثل RcloneView وRcloneUI، وكلتاهما من الجهات الراعية للمشروع.
ريموتات تبنى فوق غيرها
إلى جانب crypt، يضم Rclone عدة ريموتات افتراضية، كل منها يغلف ريموتا آخر ويضيف إليه وظيفة:
- union: يجمع عدة ريموتات في مجلد واحد، فيظهر مثلا حساب Google Drive وحساب OneDrive كمساحة واحدة.
- combine: يضع عدة ريموتات في شجرة مجلدات واحدة، لكل منها مجلد فرعي باسمه.
- chunker: يقسم الملفات الكبيرة إلى أجزاء، مفيد مع خدمات تفرض حدا لحجم الملف الواحد.
- compress: يضغط الملفات قبل رفعها لتوفير المساحة.
- hasher: يحسب البصمات ويخزنها لخدمات لا توفرها بنفسها، فيصبح
--checksumممكنا معها. - alias: اسم مختصر لمسار طويل داخل ريموت آخر.
- archive: أضيف في الإصدار 1.72، ويتيح قراءة محتوى ملفات الأرشيف المضغوطة المخزنة في السحابة دون تنزيلها كاملة.
وقابلية الجمع بين هذه الطبقات هي ما يميز التصميم. يمكن مثلا تعريف crypt فوق chunker فوق خادم SFTP، فتحصل على ملفات مشفرة ومقسمة على خادمك الخاص بأوامر Rclone نفسها.
الأداء وحدود الخدمات
ينقل Rclone افتراضيا 4 ملفات في الوقت نفسه (--transfers 4)، ويفحص 8 ملفات بالتوازي (--checkers 8) لمعرفة ما يحتاج إلى النقل. ورفع هذه الأرقام يسرع العمل مع الملفات الصغيرة الكثيرة، ما دامت الخدمة تتحمل عدد الطلبات. والملفات الكبيرة التي يتجاوز حجمها 256 ميجابايت (الخيار --multi-thread-cutoff) تنقل عبر 4 مسارات متوازية للملف الواحد (--multi-thread-streams)، مع الخدمات التي تدعم ذلك مثل S3 وB2 وAzure والقرص المحلي.
لكن الحد الفعلي للسرعة كثيرا ما تضعه الخدمة لا البرنامج. ويشرح توثيق Rclone هذا في حالة Google Drive: تضع الخدمة قيودا على معدل الطلبات (rate limiting) بحيث لا يتجاوز إنشاء الملفات نحو ملفين إلى ثلاثة ملفات في الثانية، مهما بلغت سرعة الاتصال. فالملف الكبير الواحد قد ينتقل بمئات الميجابايت في الثانية، بينما يستغرق مجلد فيه عشرات الآلاف من الملفات الصغيرة ساعات. ولهذا يحسن حزم الملفات الصغيرة الكثيرة في أرشيف واحد قبل رفعها إلى خدمات من هذا النوع.
ويفرض Google Drive أيضا حدا غير موثق رسميا لرفع 750 جيجابايت في اليوم، فإن بلغه الحساب رفضت الخدمة الرفع حتى يمر اليوم.
Rclone والنسخ الاحتياطي: فرق يجب فهمه
كثيرا ما يستعمل Rclone للنسخ الاحتياطي، لكن sync وحده ليس نسخا احتياطيا بالمعنى الكامل. فالنسخة الاحتياطية الحقيقية تحفظ الماضي: تستطيع منها استعادة الملف كما كان قبل أسبوع. أما المزامنة فتحفظ الحاضر فقط. فإن حذفت ملفا بالخطأ، أو أفسده خلل، أو شفره برنامج فدية (ransomware)، نقلت المزامنة التالية الحذف أو التلف إلى السحابة بأمانة، وضاعت النسخة السليمة.
ولسد هذه الفجوة ثلاث طرق، من الأبسط إلى الأكمل:
--backup-dirبمجلد مؤرخ: كما في أحد الأمثلة السابقة، تمرر لكل تشغيل مجلدا باسم تاريخ اليوم، فتنقل إليه الملفات المستبدلة والمحذوفة بدل ضياعها. هذا يعطي تاريخا بسيطا للتغييرات، لكنه يحفظ كل نسخة قديمة كاملة دون أي توفير في المساحة.- حفظ الإصدارات عند المزود (versioning): خدمات مثل S3 وB2 تستطيع الاحتفاظ بالإصدارات السابقة لكل ملف عند استبداله أو حذفه، فتصبح المزامنة آمنة لأن السحابة نفسها تحفظ التاريخ.
- restic فوق Rclone: أداة restic مصممة للنسخ الاحتياطي تحديدا: تنشئ لقطات (snapshots) مؤرخة، وتخزن الأجزاء المتكررة من الملفات مرة واحدة فقط (deduplication)، وتشفر كل شيء. وتستطيع restic أن تستعمل Rclone طريقا إلى التخزين، فتصل بذلك إلى كل الخدمات التي يدعمها:
restic -r rclone:b2:my-backups init # create a restic repository through rclone
restic -r rclone:b2:my-backups backup ~/DocumentsRclone مقابل البدائل
| الأداة | ما صممت له | أين تتفوق | أين تقصر |
|---|---|---|---|
| Rclone | نقل الملفات ومزامنتها مع عشرات الخدمات السحابية | عدد الخدمات، النقل بين سحابتين، التشفير والتركيب | ينقل الملف كاملا، ولا يحفظ تاريخا للنسخ دون إعداد إضافي |
| rsync | مزامنة الملفات بين الأقراص والخوادم عبر SSH | ينقل الأجزاء المتغيرة من الملف فقط | لا يتعامل مع خدمات التخزين السحابي مثل Google Drive وS3 |
| restic (ومثلها Borg) | النسخ الاحتياطي بلقطات مؤرخة | الاستعادة من أي تاريخ، توفير المساحة، التشفير | الملفات مخزنة بصيغتها الخاصة لا تتصفح في واجهة الخدمة |
| تطبيقات المزامنة الرسمية | مزامنة خدمة واحدة مع جهازك | المزامنة اللحظية وسهولة الاستعمال | خدمة واحدة فقط، ولا تشفير من جهة العميل غالبا |
والخلاصة العملية أن هذه الأدوات تتكامل أكثر مما تتنافس. rsync للخوادم التي تديرها بنفسك، وrestic للنسخ الاحتياطي الذي تريد منه استعادة الماضي، والتطبيق الرسمي لمجلد العمل اليومي الذي تريده متزامنا لحظيا. ويبقى Rclone الأداة الوحيدة بينها التي تتعامل مع عشرات خدمات التخزين بأوامر واحدة، ولذلك يظهر كثيرا وسيطا بين غيرها كما في حالة restic.
حدود Rclone ومزالقه
هذه مزالق عملية تستحق المعرفة قبل الاعتماد على البرنامج:
- سطر الأوامر هو الأساس: الواجهة الرسومية الجديدة تغطي العمليات الأساسية، لكن الجدولة والترشيح المتقدم وإعدادات التركيب ما زالت تتطلب سطر الأوامر وقراءة التوثيق.
- اتجاه المزامنة: معظم حوادث فقدان البيانات التي يرويها المستخدمون في منتدى المشروع سببها
syncبمصدر ووجهة معكوسين، أو بمصدر فارغ. - الصلاحيات والمالك لا تنسخ افتراضيا: ينقل Rclone محتوى الملف ووقت تعديله، أما صلاحياته ومالكه وخصائصه الإضافية (extended attributes / xattr) فلا تنسخ إلا بالخيار
--metadata(أو-M)، ومع الخدمات التي تستطيع حفظها. فمن يستعيد ملفات نظام من السحابة قد يجدها بصلاحيات غير التي كانت لها. - مستندات Google لا تنزل كما هي: ملفات Google Docs وSheets وSlides ليست ملفات حقيقية في Google Drive، ولذلك يصدرها Rclone عند التنزيل إلى صيغ Office (docx وxlsx وpptx) افتراضيا. وتظهر أحجامها صفرا أو سالبة في أوامر العرض، لأن حجمها لا يعرف إلا بعد تصديرها.
- حالة الأحرف في أسماء الملفات: Windows وmacOS لا يفرقان عادة بين
file.txtوFILE.txt، بينما تفرق بينهما لينكس ومعظم خدمات السحابة. فإن وجد الاسمان معا في المصدر، فقد لا تكتمل المزامنة مع الطرف الآخر مهما أعيد تشغيلها.
قيمة Rclone الحقيقية أنه يجعل خدمة التخزين قابلة للاستبدال. فالانتقال من مزود إلى آخر، وهو عادة مشروع يؤجل لأنه مرهق، يصبح أمرا واحدا ينفذ في الخلفية، والملفات تبقى بصيغتها الأصلية في كل خدمة دون أن تحتجزها أداة. لكن هذه القدرة نفسها تنقل المسؤولية إلى المستخدم، فالبرنامج لا يراجع أوامره، وينفذ الحذف بالدقة التي ينفذ بها النسخ.
إن أردت تجربة Rclone بنفسك، فهذه روابطه الرسمية:
تحميل Rclone الموقع الرسمي الكود المصدري على GitHub
