SLV Backup - البدء السريع

🗄️ SLV Backup

تُنشئ أداة SLV Backup نسخًا احتياطية مشفرة وتزايدية لعقدتك باستخدام restic. تُشفَّر جميع البيانات على جهة العميل بخوارزمية AES-256 قبل الرفع — فالخادم لا يرى بياناتك الصريحة إطلاقًا.
الوضع القديم: يدعم SLV أيضًا النسخ الاحتياطية غير المشفرة بصيغة tar+zstd (بدون --restic). نوصي بشدة باستخدام --restic لجميع النسخ الاحتياطية الجديدة.

المتطلبات المسبقة

  • تثبيت SLV CLI على العقدة المستهدفة
  • صلاحية sudo (مطلوبة للنسخ الاحتياطي الكامل للقرص)
  • تسجيل الدخول (slv login) مع اشتراك تخزين نشط
  • تثبيت restic (apt install restic)

إنشاء نسخة احتياطية مشفرة

bash
sudo slv backup create --restic --yes
text
🗄️  SLV Backup (restic mode)

  Region:    default
  Retention: 7 days

⚠️  Restic encryption password generated and saved to:
   /home/solv/.slv/restic-password
   BACK UP THIS FILE — without it, backups cannot be restored.

🔧 Initializing restic repository (if needed)...
📦 Creating restic backup...

Files:       151263 new,     0 changed,     0 unmodified
Dirs:        22486 new,     0 changed,     0 unmodified
Added to the repository: 4.107 GiB (1.837 GiB stored)

processed 151263 files, 4.366 GiB in 0:50
snapshot b6925e6d saved

✅ Restic backup complete
🧹 Applying retention policy (keep within 7 days)...
✅ Backup complete.

ماذا يحدث عند التشغيل الأول

  1. تُولَّد كلمة مرور تشفير عشوائية وتُحفظ في ~/.slv/restic-password (بالأذونات 0600)
  2. يُهيَّأ مستودع restic على ERPC Cloud Storage
  3. يُنسخ القرص بأكمله احتياطيًا (باستثناء أنظمة الملفات الوهمية للنظام)

عمليات التشغيل اللاحقة

تُرفع الملفات المتغيرة فقط (تزايدي). تحافظ إزالة التكرار على انخفاض تكاليف التخزين.

سرد النسخ الاحتياطية

bash
sudo slv backup list
يعرض كلًا من لقطات restic ونسخ tar القديمة في التخزين السحابي.

الاستعادة من نسخة احتياطية

استعد أحدث لقطة:
bash
sudo slv backup restore latest
استعد لقطة محددة:
bash
sudo slv backup restore b6925e6d
استعد نسخة tar قديمة:
bash
sudo slv backup restore backup-mynode-20260318.tar.zst

التحقق من سلامة النسخة الاحتياطية

bash
sudo restic -r rest:https://<apiKey>:[email protected]/v3/storage/restic/ \
  --password-file ~/.slv/restic-password check

إعداد النسخ الاحتياطية التلقائية (Cron)

bash
sudo slv backup create --restic --cron daily
الفاصل الزمنيالوصف
dailyالتشغيل مرة في اليوم
weeklyالتشغيل مرة في الأسبوع
monthlyالتشغيل مرة في الشهر
offإزالة مهمة cron

الاحتفاظ

افتراضيًا، تُحذف اللقطات الأقدم من 7 أيام تلقائيًا:
bash
sudo slv backup create --restic --retention 14

تخصيص الاستثناءات

اعرض قائمة الاستثناءات الحالية:
bash
slv backup create --list-excludes
أضف مسارات استثناء إضافية:
bash
sudo slv backup create --restic --exclude /home/solv/ledger --exclude /home/solv/snapshots

التشفير والأمان

الميزةالتفصيل
التشفيرAES-256-CTR + Poly1305-AES (على جهة العميل)
السلامةتخزين قابل للعنونة بالمحتوى عبر SHA-256
إزالة التكرارتقسيم مُعرَّف بالمحتوى
رؤية الخادملا شيء — لا يرى الخادم سوى كتل مشفرة
ملف كلمة المرور~/.slv/restic-password (بالأذونات 0600)
مستثنى من النسخ الاحتياطي~/.slv/restic-password, ~/.slv/api.yml, ~/.slv/backup.env
⚠️ مهم: انسخ ملف ~/.slv/restic-password احتياطيًا بشكل منفصل. بدونه تُفقد نسخك الاحتياطية فقدانًا لا رجعة فيه.

مرجع الخيارات

الخيارالوصف
--resticاستخدام restic للنسخ الاحتياطي التزايدي المشفر (موصى به)
-r, --region <region>منطقة التخزين (الافتراضية: eu)
--exclude <path>مسارات إضافية للاستثناء (قابلة للتكرار)
--include <path>الإزالة من الاستثناءات الافتراضية (قابلة للتكرار)
--list-excludesعرض قائمة الاستثناءات الحالية والخروج
--retention <days>حذف اللقطات الأقدم من N يومًا (الافتراضي: 7)
--cron <interval>إعداد مهمة cron (daily/weekly/monthly/off)
-y, --yesتخطي مطالبات التأكيد
--uploadقديم: رفع نسخة tar إلى التخزين السحابي
-o, --output <path>قديم: مسار ملف الإخراج لنسخة tar

الوضع القديم (tar+zstd)

للتوافق مع الإصدارات السابقة، لا تزال النسخ الاحتياطية غير المشفرة بصيغة tar مدعومة:
bash
sudo slv backup create --upload --yes     # Unencrypted tar backup
ملاحظة: النسخ الاحتياطية القديمة غير مشفرة. نوصي بالترحيل إلى --restic لجميع النسخ الاحتياطية الجديدة.