یک VPS ممکن است از کار بیفتد، به اشتباه حذف شود یا با یک بهروزرسانی بد خراب شود. تنها محافظت، پشتیبانی است که آزموده باشید. این راهنما پشتیبانگیری ساده، خودکار و رمزگذاریشده را با ابزارهای رایگان راهاندازی میکند.
قاعدهٔ 3-2-1
3 نسخه از دادههایتان نگه دارید، روی 2 نوع متفاوت ذخیرهسازی، و 1 نسخه جایی کاملاً دیگر. برای یک VPS این معمولاً یعنی دادههای زنده، یک اسنپشات محلی و یک نسخهٔ بیرونی نزد ارائهدهندهای دیگر یا در کشوری دیگر.
چه چیزی را پشتیبان بگیریم
- فایلها و آپلودهای وبسایت (
/var/www). - پایگاههای داده، که ابتدا در یک فایل خروجی گرفته شوند (هرگز فایلهای زندهٔ پایگاه داده را کپی نکنید).
- پیکربندی:
/etc/nginx، تغییرات/etc، فایلهای Docker Compose و volumeها. - کارهای 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 هم پشتیبانی میکند، پس میتوانید روی هر object store ارسال کنید.
یک اسکریپت پشتیبانگیری
#!/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
پشتیبانی که هرگز بازیابی نکردهاید فقط یک امید است. هر فصل یک بار آزمایش کنید و همیشه پس از تغییر هر چیز.
اسنپشاتها کمک میکنند، اما کافی نیستند
اسنپشاتهای ارائهدهنده سریعاند و پیش از تغییرات پرخطر به کار میآیند، اما نزد همان ارائهدهنده و در همان حساب قرار دارند. آنها را یک راحتی بدانید و یک نسخهٔ بیرونی مستقل نگه دارید.