قد يتعطل VPS، أو يُحذف بالخطأ، أو يتعطل بسبب تحديث سيئ. الحماية الوحيدة هي نسخة احتياطية جرّبتَها. يعدّ هذا الدليل نسخًا احتياطية بسيطة وآلية ومشفرة بأدوات مجانية.
قاعدة 3-2-1
احتفظ بـ 3 نسخ من بياناتك، على 2 نوعين مختلفين من التخزين، مع نسخة 1 في مكان آخر تمامًا. وفي حالة VPS يعني ذلك عادةً البيانات الحية، ولقطة محلية، ونسخة خارج الموقع لدى مزوّد مختلف أو في بلد مختلف.
ما الذي تنسخه احتياطيًا
- ملفات الموقع والمرفوعات (
/var/www). - قواعد البيانات، تُفرَّغ إلى ملف أولًا (لا تنسخ أبدًا ملفات قاعدة البيانات الحية).
- الإعدادات:
/etc/nginx، وتغييرات/etc، وملفات Docker Compose والأحجام (volumes). - مهام Cron وأي سكربتات مخصصة.
يمكنك إعادة تثبيت نظام التشغيل في دقائق. أما ما لا يمكنك إعادة تثبيته فهو بياناتك وإعداداتك.
استخدم restic لنسخ احتياطية مشفرة ومنزوعة التكرار
sudo apt install -y restic
export RESTIC_REPOSITORY=sftp:backup@other-server:/backups/vps1
export RESTIC_PASSWORD_FILE=/root/.restic-pass
restic init
أنشئ ملف كلمة المرور بسلسلة عشوائية طويلة واحتفظ بنسخة منه في مكان آمن. إذا فقدت كلمة المرور هذه، فلا يمكن فتح النسخ الاحتياطية. يدعم restic أيضًا التخزين المتوافق مع S3، لذا يمكنك الرفع إلى أي مخزن كائنات.
سكربت نسخ احتياطي
#!/bin/bash
set -e
export RESTIC_REPOSITORY=sftp:backup@other-server:/backups/vps1
export RESTIC_PASSWORD_FILE=/root/.restic-pass
mysqldump --single-transaction --all-databases | gzip > /var/backups/db.sql.gz
restic backup /var/www /etc /var/backups/db.sql.gz
restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune
احفظه باسم /usr/local/bin/backup.sh، واجعله قابلًا للتنفيذ، وجدولْه:
sudo chmod +x /usr/local/bin/backup.sh
echo "30 3 * * * root /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1" | sudo tee /etc/cron.d/backup
اختبر الاستعادة
restic snapshots
restic restore latest --target /tmp/restore-test --include /etc/nginx
النسخة الاحتياطية التي لم تستعدها قط ليست سوى أمل. اختبرها مرة كل ربع سنة، ودائمًا بعد تغيير أي شيء.
اللقطات تفيد لكنها لا تكفي
لقطات المزوّد سريعة ومفيدة قبل التغييرات المحفوفة بالمخاطر، لكنها تعيش لدى المزوّد نفسه وفي الحساب نفسه. اعتبرها وسيلة راحة، واحتفظ بنسخة مستقلة خارج الموقع.