العودة إلى المدونة
يناير 13, 2026الأدلة

كيفية تكوين النسخ الاحتياطي التلقائي على خادم Linux

دليل خطوة بخطوة حول إعداد نصوص برمجية للنسخ الاحتياطي التلقائي باستخدام مهام cron للملفات وقواعد البيانات.

كيفية تكوين النسخ الاحتياطي التلقائي على خادم Linux

النسخ الاحتياطي المنتظم ضروري لحماية بياناتك. يوضح لك هذا الدليل كيفية إعداد نسخ احتياطي تلقائي لملفاتك وقواعد بياناتك باستخدام نصوص shell ومهام cron على خادم Hiddence الخاص بك.

إنشاء نص النسخ الاحتياطي

إنشاء نص نسخ احتياطي لملفاتك:

bash
sudo nano /usr/local/bin/backup.sh
#!/bin/bash
BACKUP_DIR="/backups"
SOURCE_DIR="/var/www"
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p $BACKUP_DIR
tar -czf $BACKUP_DIR/backup_$DATE.tar.gz $SOURCE_DIR
find $BACKUP_DIR -name "backup_*.tar.gz" -mtime +7 -delete
sudo chmod +x /usr/local/bin/backup.sh

إعداد مهمة Cron

جدولة النسخ الاحتياطي التلقائي باستخدام cron:

bash
sudo crontab -e
# أضف هذا السطر لتشغيل النسخ الاحتياطي يوميًا في الساعة 2 صباحًا
0 2 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1

نص النسخ الاحتياطي لقاعدة البيانات

إنشاء نص للنسخ الاحتياطي لقاعدة بيانات MySQL:

bash
sudo nano /usr/local/bin/db_backup.sh
#!/bin/bash
BACKUP_DIR="/backups/db"
DB_NAME="your_database"
DB_USER="root"
DB_PASS="your_password"
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p $BACKUP_DIR
mysqldump -u $DB_USER -p$DB_PASS $DB_NAME > $BACKUP_DIR/db_backup_$DATE.sql
gzip $BACKUP_DIR/db_backup_$DATE.sql
find $BACKUP_DIR -name "db_backup_*.sql.gz" -mtime +7 -delete
sudo chmod +x /usr/local/bin/db_backup.sh

تخزين النسخ الاحتياطي عن بعد

انسخ النسخ الاحتياطية إلى خادم بعيد باستخدام rsync أو SCP:

bash
#!/bin/bash
BACKUP_DIR="/backups"
REMOTE_HOST="backup-server.com"
REMOTE_USER="backup"
REMOTE_DIR="/backups"
rsync -avz -e ssh $BACKUP_DIR/ $REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR/

سياسة استبقاء النسخ الاحتياطي

تكوين الاستبقاء للاحتفاظ بالنسخ الاحتياطية لفترة محددة:

bash
# الاحتفاظ بالنسخ الاحتياطية اليومية لمدة 7 أيام
find /backups -name "backup_*.tar.gz" -mtime +7 -delete

# الاحتفاظ بالنسخ الاحتياطية الأسبوعية لمدة 4 أسابيع
find /backups/weekly -name "backup_*.tar.gz" -mtime +28 -delete

# الاحتفاظ بالنسخ الاحتياطية الشهرية لمدة 12 شهرًا
find /backups/monthly -name "backup_*.tar.gz" -mtime +365 -delete

أفضل ممارسات النسخ الاحتياطي

  • اختبر استعادة النسخ الاحتياطي بانتظام
  • قم بتخزين النسخ الاحتياطية في مواقع متعددة
  • تشفير بيانات النسخ الاحتياطي الحساسة
  • مراقبة سجلات النسخ الاحتياطي بحثًا عن الأخطاء
  • توثيق إجراءات النسخ الاحتياطي الخاصة بك
  • إعداد تنبيهات لفشل النسخ الاحتياطي