نسخ احتياطي ليلي إلى مساحة تخزينك عبر rclone
درس عملي خطوة بخطوة: وجّه rclone إلى basin.alawadi.cloud، وجدوِل نسخة احتياطية ليلية عبر cron، وأضف سياسة احتفاظ، ثم جرّب الاستعادة فعلاً. نقل البيانات مجاني، فالتمرّن على الاستعادة لا يكلّفك شيئاً.
لديك بيانات لا تحتمل خسارتها: ملفّات التطبيق، أو الملفّات التي يرفعها المستخدمون، أو نسخة من قاعدة البيانات. ومع Basin المتاح الآن على alawadi.cloud، صار الحلّ مساحة تخزين واحدة (bucket)، وملفّ إعداد واحداً، وسطر cron واحداً. في هذا الدرس نُعدّ نسخاً احتياطياً ليلياً عبر rclone، ونضيف سياسة احتفاظ، والأهمّ من ذلك: نجرّب الاستعادة.
ما ستحتاجه
- حساب على alawadi.cloud مع bucket (تُنشئه من لوحة التحكّم خلال دقيقة تقريباً)
- أداة
rcloneمثبّتة على الجهاز الذي يخزّن بياناتك - بيئة فيها cron: خادمك، أو أيّ جهاز يعمل على الدوام
الخطوة ١: أنشئ الـ bucket واحفظ مفاتيحه
من البوابة، أنشئ bucket في Basin، واختر حجماً يتّسع لنسخك الاحتياطية مع هامش إضافي. يظهر مفتاح الوصول والمفتاح السرّي مرة واحدة فقط لحظة الإنشاء، فاحفظهما في مدير كلمات المرور قبل أن تُغلق النافذة؛ فإن ضاعا احتجت إلى توليدهما من جديد.
والمفاتيح محصورة بهذا الـ bucket وحده، وهذا بالضبط ما تريده لمهمّة نسخ احتياطي: فحتى لو اختُرق الجهاز الذي يشغّل المهمّة، لا ينكشف إلا bucket النسخ الاحتياطية.
الخطوة ٢: هيّئ rclone
أضف الوجهة إلى الملفّ ~/.config/rclone/rclone.conf:
[alawadi]
type = s3
provider = Other
access_key_id = EXAMPLE_ACCESS_KEY_ID
secret_access_key = EXAMPLE_SECRET_KEY
endpoint = https://basin.alawadi.cloud
region = damm-1
force_path_style = trueتأكّد أنّ الإعداد يعمل (الـ bucket الفارغ لا يطبع شيئاً وينتهي بنجاح):
rclone ls alawadi:YOUR_BUCKETالخطوة ٣: اكتب سكربت النسخ الاحتياطي
احفظ ما يلي في /usr/local/bin/nightly-backup.sh، وعدّل مسار البيانات:
#!/usr/bin/env bash
set -euo pipefail
STAMP="$(date +%F)"
ARCHIVE="/tmp/app-data-${STAMP}.tar.gz"
# 1. Snapshot the data directory into a dated archive
tar -czf "${ARCHIVE}" -C /var/lib/myapp data
# 2. Ship it to the bucket
rclone copy "${ARCHIVE}" "alawadi:YOUR_BUCKET/nightly/"
# 3. Clean up the local archive
rm -f "${ARCHIVE}"اجعله قابلاً للتنفيذ عبر chmod +x /usr/local/bin/nightly-backup.sh، وشغّله مرة واحدة يدوياً، ثم تأكّد أنّ الملفّ وصل:
rclone ls alawadi:YOUR_BUCKET/nightly/وإن كانت بياناتك في قاعدة بيانات، فخذ نسخة منها أولاً (pg_dump أو mysqldump أو ما يقابلهما في محرّكك)، ثم ارفع الملفّ الناتج بالطريقة ذاتها. أمّا قواعد البيانات المُدارة على alawadi.cloud فتُنسخ احتياطياً من المنصّة أصلاً؛ وهذا الأسلوب مخصّص للبيانات التي تديرها بنفسك، ولإبقاء نسخة إضافية تحت مفاتيحك أنت.
الخطوة ٤: جدولة التشغيل
سطر cron واحد يشغّل النسخ كلّ ليلة الساعة الثالثة فجراً:
crontab -e0 3 * * * /usr/local/bin/nightly-backup.sh >> /var/log/nightly-backup.log 2>&1راجِع الملفّ /var/log/nightly-backup.log بعد الليلة الأولى. فمهمّة نسخ احتياطي تفشل بصمت أسوأ من لا شيء، لأنها تمنحك طمأنينة زائفة.
الخطوة ٥: أضف سياسة الاحتفاظ
الأرشيفات الليلية تتراكم. احتفظ بآخر ٣٠ يوماً بإضافة سطر واحد إلى السكربت بعد الرفع:
# 4. Drop archives older than 30 days
rclone delete "alawadi:YOUR_BUCKET/nightly/" --min-age 30dثلاثون أرشيفاً يومياً لمجلّد بيانات حجمه 200 MB تساوي نحو 6 GB، أي قرابة $0.24 شهرياً بسعر $0.04 لكل GB شهرياً. عدّل المدّة بما يناسبك.
الخطوة ٦: جرّب الاستعادة
نسخة احتياطية لم تستعِدها يوماً هي أمنية، لا نسخة احتياطية. اسحب أرشيف ليلة أمس وتحقّق منه:
mkdir -p /tmp/restore-test
rclone copy "alawadi:YOUR_BUCKET/nightly/app-data-2026-07-02.tar.gz" /tmp/restore-test/
# The archive lists cleanly = the backup is readable end-to-end
tar -tzf /tmp/restore-test/app-data-2026-07-02.tar.gz | headافعلها مرة الآن، وضع تذكيراً شهرياً في تقويمك. ولأنّ نقل البيانات مجاني على alawadi.cloud، فتمرين الاستعادة لا يكلّفك شيئاً مهما كبُر الأرشيف؛ لا غرامة على الحذر.
إلى أين بعد ذلك؟
- دليل البدء السريع للتخزين يغطّي واجهة S3 وإعداد المكتبات ومزيداً من الأدوات.
- حاسبة الأسعار تقدّر بند التخزين إلى جانب بقية خدماتك.
لديك أسئلة؟ افتح تذكرة دعم في البوابة، أو راسل [email protected].
الشركة المطوّرة لمنصّة alawadi.cloud
شركة تبني منصّة سحابية عربية الهوية، من الخوادم الفعلية وصولاً إلى تجربة المطوّرين.