ar
استراتيجية النسخ الاحتياطي لـ VPS: الدليل الشامل
فقدان البيانات كارثة يمكن تجنبها بخطة نسخ احتياطي محكمة. سواء كان الأمر خطأ بشريًا أو فشلًا في الأجهزة أو هجومًا إلكترونيًا، فإن وجود نسخ احتياطية موثوقة هو الضمان الوحيد لاستمرار عملك. يشرح هذا الدليل كيفية بناء نظام نسخ احتياطي متكامل يعمل تلقائيًا على VPS الخارجي الخاص بك.
Need this done for your project?
We implement, you ship. Async, documented, done in days.
قاعدة 3-2-1: المبدأ الذهبي للنسخ الاحتياطي
قاعدة 3-2-1 هي المعيار الصناعي لأي خطة نسخ احتياطي موثوقة:
3: احتفظ بثلاث نسخ من البيانات
2: احفظها على نوعين مختلفين من الوسائط
1: احتفظ بنسخة واحدة على الأقل خارج الموقع
تطبيق على VPS الخارجي:
- النسخة الأولى: الخادم الرئيسي نفسه
- النسخة الثانية: VPS آخر أو تخزين سحابي (Backblaze B2, Wasabi)
- النسخة الثالثة: تخزين محلي لديك أو خدمة أخرى
مع VPS الخارجي من Anubiz Host، تحصل على بيئة مثالية لتطبيق هذا النظام بتكلفة منخفضة. احرص على اختبار استعادة البيانات من النسخ الاحتياطية بشكل دوري - النسخة غير المُختبرة قد تكون عديمة الفائدة.
النسخ الاحتياطي التلقائي للملفات باستخدام rsync
rsync أداة قوية للنسخ الاحتياطي المتزايد - ينقل فقط التغييرات الجديدة:
أنشئ سكريبت النسخ الاحتياطي:
nano /root/scripts/backup.sh
أضف المحتوى:
#!/bin/bash
DATE=$(date +%Y-%m-%d)
BACKUP_DIR="/backup/${DATE}"
SOURCE_DIRS="/var/www /etc /home"
LOG="/var/log/backup.log"
mkdir -p "${BACKUP_DIR}"
for DIR in ${SOURCE_DIRS}; do
rsync -az --delete "${DIR}" "${BACKUP_DIR}/"
echo "$(date): Backed up ${DIR}" >> "${LOG}"
done
# احذف النسخ الأقدم من 30 يومًا
find /backup -type d -mtime +30 -exec rm -rf {} ;
echo "$(date): Backup complete" >> "${LOG}"
اجعله قابلًا للتنفيذ:
chmod +x /root/scripts/backup.sh
نسخ احتياطي لقواعد البيانات MySQL/PostgreSQL
قواعد البيانات تحتاج معالجة خاصة لضمان اتساق البيانات. لـ MySQL:
أنشئ سكريبت نسخ قواعد البيانات:
nano /root/scripts/db-backup.sh
#!/bin/bash
DATE=$(date +%Y-%m-%d_%H-%M)
BACKUP_DIR="/backup/db"
DB_USER="root"
MYSQL_PWD="${DB_PASSWORD}"
mkdir -p "${BACKUP_DIR}"
for DB in $(mysql -u"${DB_USER}" -p"${MYSQL_PWD}" -e 'show databases' -s --skip-column-names); do
if [ "${DB}" != "information_schema" ] && [ "${DB}" != "performance_schema" ]; then
mysqldump -u"${DB_USER}" -p"${MYSQL_PWD}" "${DB}" | gzip > "${BACKUP_DIR}/${DB}_${DATE}.sql.gz"
fi
done
لـ PostgreSQL:
pg_dumpall -U postgres | gzip > "${BACKUP_DIR}/postgresql_${DATE}.sql.gz"
جدوِل النسخ الاحتياطي يوميًا عبر cron:
crontab -e
أضف:
0 2 * * * /root/scripts/db-backup.sh
النسخ الاحتياطي عن بُعد ورفع إلى التخزين السحابي
للامتثال لقاعدة 3-2-1، أرسل النسخ إلى موقع خارجي. استخدم rclone لرفع إلى أي خدمة سحابية:
تثبيت rclone:
curl https://rclone.org/install.sh | sudo bash
إعداد الاتصال بـ Backblaze B2:
rclone config
اتبع التعليمات التفاعلية لإضافة B2 bucket. بعد الإعداد، أضف إلى سكريبت النسخ الاحتياطي:
rclone sync /backup b2:my-backup-bucket --exclude "*.tmp"
للنقل عبر SSH إلى خادم آخر:
rsync -az -e "ssh -p 2222 -i /root/.ssh/backup_key" /backup/ backup-user@${REMOTE_IP}:/backups/myvps/
اختبر الاستعادة بشكل شهري:
rsync -az b2:my-backup-bucket/2026-05-01/ /restore-test/
تحقق من سلامة الملفات المستعادة قبل الاعتماد عليها.
Related Services
Why Anubiz Host
100% async — no calls, no meetings
Delivered in days, not weeks
Full documentation included
Production-grade from day one
Security-first approach
Post-delivery support included
Ready to get started?
Skip the research. Tell us what you need, and we'll scope it, implement it, and hand it back — fully documented and production-ready.