OffshoreVps
الأمان25 سبتمبر 20266 دقيقة للقراءةبقلم فريق OffshoreVps

انسخ VPS احتياطياً باستخدام Restic أو Borg

نسخ احتياطية مشفّرة ومنزوعة التكرار إلى خادم ثانٍ: أوامر restic وborg، وتفريغ قواعد البيانات، والاحتفاظ بالنسخ، والجدولة، واختبار الاستعادة.

النسخة الاحتياطية القابلة للاستعادة هي الفرق بين عصر مزعج وخسارة مشروع. يغطي دليل النسخ الاحتياطي الأساسي لـ VPS الفكرة. أما هذا الدليل فيتعمق أكثر مع restic وBorgBackup: أداتان تنشئان نسخاً احتياطية مشفّرة ومنزوعة التكرار إلى خادم ثانٍ أو إلى تخزين كائنات.

نافذة طرفية على VPS تعرض الأوامر المستخدمة لنسخ VPS احتياطياً باستخدام restic أو borg، تبدأ بـ “sudo apt install -y restic”
نوع الأوامر التي ستشغّلها على خادمك في هذا الدليل.

لماذا restic أو borg بدلاً من النسخ العادي

  • إزالة التكرار. تُخزَّن البيانات المتغيرة فقط، فتبقى اللقطات اليومية صغيرة.
  • التشفير. تُشفَّر البيانات قبل أن تغادر خادمك.
  • اللقطات. يمكنك استعادة الحالة من أي يوم مضى.
  • التحقق. يمكن لكلتا الأداتين فحص سلامة المستودع.

اختر واحدة. restic بسيطة وتعمل مع أنواع كثيرة من التخزين، بما فيها SFTP والتخزين المتوافق مع S3. أما borg فكفؤة جداً وتعمل عبر SSH مع خادم مثبّت عليه borg.

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

لا تخزّن النسخة الاحتياطية الوحيدة على الخادم نفسه أبداً. استخدم VPS ثانياً في موقع آخر، أو حاوية متوافقة مع S3، أو storage box. يشكّل VPS صغير بقرص كبير هدفاً رخيصاً للنسخ الاحتياطي. اطّلع على خطط VPS.

Restic: الإعداد

sudo apt install -y restic
export RESTIC_REPOSITORY="sftp:backup@backup.example.com:/srv/restic/myserver"
export RESTIC_PASSWORD_FILE=/root/.restic-pass
restic init

أنشئ ملف كلمة المرور بكلمة مرور عشوائية طويلة واحتفظ بنسخة منها دون اتصال. بدون كلمة المرور هذه لا يمكن استعادة النسخ الاحتياطية.

restic backup /etc /home /var/www --exclude-caches
restic snapshots
restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune
restic check
خطوات هذا الدليل بالترتيب: 1. لماذا restic أو borg بدلاً من النسخ العادي؛ 2. أين ترسل النسخ الاحتياطية؛ 3. Restic: الإعداد؛ 4. قواعد البيانات تحتاج عناية؛ 5. جدولها؛ 6. اختبر الاستعادة
خطوات هذا الدليل بالترتيب.

Borg: الإعداد

sudo apt install -y borgbackup
export BORG_REPO="ssh://backup@backup.example.com/srv/borg/myserver"
borg init --encryption=repokey-blake2
borg create --stats --compression zstd ::'{hostname}-{now:%Y-%m-%d}' /etc /home /var/www
borg prune --keep-daily 7 --keep-weekly 4 --keep-monthly 6
borg check

صدّر مفتاح المستودع واحتفظ به باستخدام borg key export.

قواعد البيانات تحتاج عناية

لا تنسخ ملفات قاعدة البيانات وهي قيد التشغيل. أنشئ لها تفريغاً أولاً وانسخ التفريغ احتياطياً:

mysqldump --single-transaction --all-databases | gzip > /var/backups/db.sql.gz
sudo -u postgres pg_dumpall | gzip > /var/backups/pg.sql.gz

جدولها

شغّل النسخ الاحتياطي من مؤقّت systemd أو cron. سطر cron بسيط:

15 3 * * * root /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1

نبّه نفسك عند الفشل، مثلاً بإرسال ping مراقبة في نهاية السكربت.

اختبر الاستعادة

restic restore latest --target /tmp/restore-test --include /etc/nginx
ls /tmp/restore-test

اختبر استعادة حقيقية على جهاز احتياطي من وقت لآخر. النسخة الاحتياطية التي لم تختبرها مجرد أمل.