استخدم rclone للمزامنة مع Dropbox (2025)

المسؤولون والمشرفون: لا تترددوا في نقل هذا الموضوع إلى مكان آخر أو تعديله إذا لزم الأمر.

هذه تعليمات مفصلة خطوة بخطوة حول كيفية تثبيت rclone وإعداد كل شيء لعمل نسخة احتياطية من Discourse الخاص بي إلى Dropbox. بالنسبة لمستخدمي Google Drive، أعتقد أن معظم هذه الخطوات ستنطبق أيضًا.

لقد اتبعت بعض التعليمات التي قدمها كريستوف (@tophee) في الأصل هنا:

نظرًا لأنني لست خبيرًا على الإطلاق، فقد بدت محدودة للغاية وفشلت في النهاية، لذلك حصلت على مساعدة من ChatGPT وكل شيء يعمل! لقد وثقت كل شيء، خطوة بخطوة، لأولئك منكم الذين ربما ليسوا مستخدمين متقدمين مثلي، ويحتاجون إلى يد إضافية على طول الطريق.

:one: تثبيت rclone عن بُعد والاستعداد لـ Dropbox

اتصل بخادمك عبر SSH:

ssh root@xxx.xxx.xxx.xxx

عندما تكون على خادمك:

root@ServerNameHere:~#

تثبيت rclone:

sudo curl https://rclone.org/install.sh | sudo bash

إذا نجح، قم بتشغيل:

sudo rclone config

عندما يعرض:

2025/08/13 11:29:31 NOTICE: Config file "/root/.config/rclone/rclone.conf" not found - using defaults
No remotes found, make a new one?
n) New remote
s) Set configuration password
q) Quit config
n/s/q> 

… اكتب n. اضغط على Enter.

عندما يُعرض:

Enter name for new remote.
name> 

أعطه اسمًا، على سبيل المثال dropbox_backup. اضغط على Enter.

سيعرض لك قائمة باللونين الأحمر والأخضر (فعل ذلك بالنسبة لي)، وأحد هذه الخيارات هو Dropbox. كل خيار له رقم مرتبط به. كان رقمي:

14 / Dropbox
   \ (dropbox)

في الأسفل، حيث يقول Storage>, أضف الرقم الخاص بـ Dropbox. لذا، في حالتي، انتهيت بـ Storage>14. اضغط على Enter.

سيعرض:

Option client_id.
OAuth Client Id.
Leave blank normally.
Enter a value. Press Enter to leave empty.
client_id> 

فقط اضغط على Enter لتركه فارغًا. افعل الشيء نفسه عندما يعرض:

Option client_secret.
OAuth Client Secret.
Leave blank normally.
Enter a value. Press Enter to leave empty.
client_secret> 

عندما يعرض:

Edit advanced config?
y) Yes
n) No (default)
y/n> 

اكتب n واضغط على Enter.

عندما يعرض:

Use web browser to automatically authenticate rclone with remote?
 * Say Y if the machine running rclone has a web browser you can use
 * Say N if running rclone on a (remote) machine without web browser access
If not sure try Y. If Y failed, try N.

y) Yes (default)
n) No
y/n> 

اكتب n واضغط على Enter.

عندما يعرض:

Option config_token.
For this to work, you will need rclone available on a machine that has
a web browser available.
For more help and alternate methods see: https://rclone.org/remote_setup/
Execute the following on the machine with the web browser (same rclone
version recommended):

	rclone authorize "dropbox"
Then paste the result.
Enter a value.
config_token> 

:stop_sign: توقف!

:two: تثبيت rclone محليًا وتفويض Dropbox

قم بتثبيت rclone على جهاز الكمبيوتر الخاص بك. في حالتي، فتحت نافذة Terminal جديدة على جهاز Mac الخاص بي حتى أتمكن من تثبيت rclone دون التدخل في العملية السابقة، لأنني بحاجة إلى المتابعة بعد الحصول على رمز Dropbox.

تحققت أولاً مما إذا كنت قد قمت بتثبيته على جهاز Mac الخاص بي عن طريق تشغيل:

rclone version

لم أفعل، لذلك اضطررت إلى تثبيته. في حالتي الخاصة، أستخدم MacPorts، لأن Homebrew لا يعمل بشكل جيد مع Catalina؛ اختر خيارك المفضل.

أمر Homebrew:

brew install rclone

أمر MacPorts:

sudo port install rclone

بمجرد تثبيته، في نفس النافذة، قم بتشغيل:

rclone authorize "dropbox"

هذا الاسم dropbox ليس مرتبطًا بالاسم dropbox_backup الذي اخترناه سابقًا.

بمجرد تشغيل ذلك، سيفتح المتصفح نافذة التفويض.
إذا لم يحدث ذلك، الصق هذا الرابط في متصفحك: http://127.0.0.1:53682/auth (وفقًا لهذه التعليمات https://rclone.org/remote_setup/).

قم بتسجيل الدخول إلى Dropbox. انقر فوق الزر Allow. إذا سار كل شيء على ما يرام، فستحصل على الرسالة:

Success!
All done. Please go back to rclone.

أغلق تلك النافذة.

:three: إنهاء إعداد Dropbox

ارجع إلى Terminal، وسيعرض رمزًا طويلاً (سيكون طويلاً جدًا، لقد قصرته هنا):

{"access_token":"sl.u.AF5VJTs.................ZvNhniOToyQG","token_type":"bearer","refresh_token":"jygyhExsHRgAAAAAAAAAAfeHd8D0l5jzLvuiZ1onH2nXP2YeC2ycrbm5eQ5Y3uc6","expiry":"2025-08-13T16:58:41.072138+01:00","expires_in":14400}

انسخ كل شيء من { الافتتاحي إلى } الختامي، بما في ذلك الأقواس نفسها، والصقه في النافذة الأخرى:

Option config_token.
For this to work, you will need rclone available on a machine that has
a web browser available.
For more help and alternate methods see: https://rclone.org/remote_setup/
Execute the following on the machine with the web browser (same rclone
version recommended):

	rclone authorize "dropbox"
Then paste the result.
Enter a value.
config_token> PASTE_TOKEN_HERE

اضغط على Enter.

إذا كان كل شيء ناجحًا، سترى شيئًا مثل:

Configuration complete.
Options:
- type: dropbox
- token: {"access_token":"sl.u.AF5VJTs7..........ToyQG","token_type":"bearer","refresh_token":"jygyhExsHRgAAAAAAAAAAfeHd8D0l5jzLvuiZ1onH2nXP2YeC2ycrbm5eQ5Y3uc6","expiry":"2025-08-13T16:58:41.072138+01:00","expires_in":14400}
Keep this "dropbox_backup" remote?
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d> 

اختر y للاحتفاظ به. سيؤدي هذا إلى حفظ الجهاز البعيد باسم dropbox_backup على خادمك، وستتمكن من استخدامه لأوامر rclone. اضغط على Enter.

سيعرض:

Current remotes:

Name                 Type
====                 ====
dropbox_backup       dropbox

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> 

اكتب q للخروج من التكوين. جهاز dropbox_backup البعيد جاهز الآن للاستخدام. اضغط على Enter.

أثناء وجودك في root@، قم بتشغيل rclone lsd dropbox_backup:
سيؤدي هذا إلى سرد جميع الدلائل على المستوى الأعلى في Dropbox الخاص بك لتأكيد عمل الاتصال.

:four: النسخ الاحتياطي

:keyboard: يدوي

لعمل نسخة احتياطية يدويًا، بافتراض أن لديك إعدادًا نموذجيًا (ليس إعداد حاويتين)، قم بتشغيل:

sudo rclone copy /var/discourse/shared/standalone/backups/default --exclude tmp/ dropbox_backup:backups
  • /var/discourse/shared/standalone/backups/default → مجلد المصدر على خادمك (أؤكد أن هذا المسار دقيق في إعداد نموذجي - ليس إعداد حاويتين - على الأقل اعتبارًا من أغسطس 2025).
  • --exclude tmp/ → يتجاوز الملفات المؤقتة.
  • dropbox_backup:backups → اسم الجهاز البعيد (dropbox_backup) والمجلد في Dropbox (backups).

سيؤدي هذا إلى تحميل جميع ملفات النسخ الاحتياطي (باستثناء tmp/) إلى Dropbox الخاص بك، إلى مجلد يسمى backups، باستخدام الاسم الذي اخترناه سابقًا: dropbox_backup.

إذا كنت تريد مجلدًا به مسافات، على سبيل المثال Discourse Backups، فقم بتشغيل هذا بدلاً من ذلك:

sudo rclone copy /var/discourse/shared/standalone/backups/default --exclude tmp/ "dropbox_backup:Discourse Backups"

إذا سار كل شيء كما هو مخطط له، سترى الآن مجلد Discourse Backups (أو أي اسم اخترته) في Dropbox الخاص بك مع جميع ملفات النسخ الاحتياطي الخاصة بك.

نظرًا لأنك وصلت إلى هذه النقطة، فتابع وأغلق النافذة الثانية في Terminal، النافذة المستخدمة لتثبيت rclone على جهاز الكمبيوتر الخاص بك، لتجنب أي ارتباك في المستقبل.

:alarm_clock: مهمة Cron

الآن، لنقم بإنشاء مهمة cron لأتمتة هذه العملية:

crontab -e

سيُعرض لك:

no crontab for root - using an empty one
Select an editor.  To change later, run select-editor again.
  1. /bin/nano        <---- easiest
  2. /usr/bin/vim.basic
  3. /usr/bin/vim.tiny
  4. /bin/ed

Choose 1-4 [1]: 

اختر 1. اضغط على Enter.

سترى شيئًا مثل:

# Edit this file to introduce tasks to be run by cron.
# 
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
# 
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').
# 
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
# 
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
# 
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
# 
# For more information see the manual pages of crontab(5) and cron(8)
# 
# m h  dom mon dow   command

في نهاية كل ذلك، أضف مهمة cron. لنسخ النسخ الاحتياطية كل يوم في الساعة 6 مساءً، أضف ما يلي:

0 18 * * * rclone copy /var/discourse/shared/standalone/backups/default --exclude tmp/ "dropbox_backup:Discourse Backups"

لذا ستنتهي “قائمتك” بـ:

(INITIAL TEXT HERE)

# m h  dom mon dow   command

0 18 * * * rclone copy /var/discourse/shared/standalone/backups/default --exclude tmp/ "dropbox_backup:Discourse Backups"

اضغط على Ctrl+X. في أسفل النافذة، سيُطلب منك الحفظ. اضغط على Y ثم Enter.

لقد انتهيت!

يمكنك تشغيل مهمة cron بشكل متكرر إذا أردت، حيث سيتم نسخ الملفات الجديدة فقط على أي حال.

لاحظ أن خيار copy سيضيف المزيد والمزيد من النسخ الاحتياطية إلى Dropbox الخاص بك حتى عندما يتم حذف تلك الموجودة على خادمك. إذا كنت تريد فقط الاحتفاظ بتلك التي يتم الاحتفاظ بها أيضًا على خادمك، فاستخدم sync بدلاً من copy.

5 إعجابات

شكرا لك، لقد كان هذا مفيدًا جدًا. لدي الآن rclone و Dropbox متصلان، كيف يمكنني توصيل Dropbox بـ Plex الخاص بي؟

أتساءل أحيانًا عما إذا كان يجب استخدام الأمر sync بدلاً من copy في الأمثلة الموجودة في تلك الدروس (أفكر في Use rclone to sync backups to Dropbox or Google Drive أيضًا)، وذكر الأمر copy كخيار آخر، لأنني لا أعرف لماذا قد يفضل شخص ما استخدام copy بدلاً من sync إلا إذا كان لديه مساحة غير محدودة :thinking:

لكل ما أقوم به، أحب الاحتفاظ بنسخ احتياطية إضافية في حال حدوث خطأ ما، على الأقل لفترة من الوقت. الاحتفاظ بنسخ متعددة يمنحني راحة البال. وجود نسخة واحدة يجعلني متوتراً :wink: