الرئيسية قاعدة المعرفة الشبكات والاتصالات النسخ الاحتياطي والأمان: حماية بيانات المصنع من الضياع والاختراق
الشبكات والاتصالات

النسخ الاحتياطي والأمان: حماية بيانات المصنع من الضياع والاختراق

استراتيجيات النسخ الاحتياطي: 3-2-1

فقدان البيانات في بيئة صناعية يعني سجلات إنتاج مفقودة وانتهاكات امتثال وأسابيع من إعادة البناء اليدوي. قاعدة 3-2-1 هي المعيار الذهبي:

  • 3 نسخ من بياناتك (الأصل + نسختان احتياطيتان)
  • 2 وسائط تخزين مختلفة (قرص محلي + سحابي)
  • 1 نسخة خارج الموقع (موقع فيزيائي مختلف)
النوع الوصف التكرار
كامل نسخة كاملة لجميع البيانات أسبوعياً
تزايدي التغييرات فقط منذ آخر نسخة يومياً
سجل المعاملات سجلات الكتابة المسبقة مستمر

نسخ قواعد البيانات: SurrealDB و PostgreSQL

SurrealDB

surreal export --conn http://localhost:8000 \
  --user root --pass factory123 \
  --ns factory --db production \
  --output /backups/surrealdb/factory-$(date +%Y%m%d).surql

# الاستعادة
surreal import --conn http://localhost:8000 \
  --user root --pass factory123 \
  --ns factory --db production \
  /backups/surrealdb/factory-20250415.surql

PostgreSQL

pg_dump -h localhost -U factory_user -Fc production_db > /backups/postgres/factory-$(date +%Y%m%d).dump
pg_restore -h localhost -U factory_user -d production_db /backups/postgres/factory-20250415.dump

نسخ أحجام Docker

docker compose stop surrealdb
docker run --rm -v factory-monitor_surreal-data:/data -v /backups:/backup \
  alpine tar czf /backup/surreal-volume-$(date +%Y%m%d).tar.gz -C /data .
docker compose start surrealdb

تشفير النسخ الاحتياطية

النسخ الاحتياطية غير المشفرة ثغرة أمنية. شفّر كل نسخة قبل مغادرتها الخادم.

GPG

gpg --encrypt --recipient backup@drmachine.io /backups/factory-20250415.surql
gpg --decrypt /backups/factory-20250415.surql.gpg > /tmp/restore.surql

OpenSSL

openssl enc -aes-256-cbc -salt -pbkdf2 \
  -in /backups/factory-20250415.tar.gz \
  -out /backups/factory-20250415.tar.gz.enc

openssl enc -d -aes-256-cbc -pbkdf2 \
  -in /backups/factory-20250415.tar.gz.enc \
  -out /backups/factory-20250415.tar.gz

الرفع للسحابة

rclone copy /backups/factory-20250415.tar.gz.enc remote:factory-backups/daily/

إدارة المفاتيح والأسرار

ملفات البيئة بصلاحيات صارمة

cat > /opt/factory-monitor/.env << 'EOF'
DATABASE_URL=ws://localhost:8000
DB_USER=root
DB_PASS=secure_factory_password_2025
EOF
chmod 600 /opt/factory-monitor/.env
chown factory:factory /opt/factory-monitor/.env

أسرار Docker

services:
  factory-app:
    secrets: [db_password, api_key]
    environment:
      - DB_PASS_FILE=/run/secrets/db_password
secrets:
  db_password:
    file: ./secrets/db_password.txt
  api_key:
    file: ./secrets/api_key.txt

تدوير الأسرار

NEW_PASS=$(openssl rand -base64 32)
surreal sql --conn http://localhost:8000 --user root --pass "$OLD_PASS" \
  "DEFINE USER root ON ROOT PASSWORD '$NEW_PASS'"
sed -i "s/DB_PASS=.*/DB_PASS=$NEW_PASS/" /opt/factory-monitor/.env
sudo systemctl restart factory-monitor

خطة التعافي من الكوارث

النسخة الاحتياطية عديمة الفائدة إذا لم تستطع الاستعادة منها. حدد RTO (سرعة عودة النظام) وRPO (كم من فقدان البيانات مقبول).

قائمة مرجعية للاستعادة

1. [ ] توفير خادم جديد أو استخدام الاحتياطي
2. [ ] تثبيت Docker و Docker Compose
3. [ ] استعادة آخر نسخة احتياطية
4. [ ] التحقق من سلامة البيانات
5. [ ] تحديث سجلات DNS إذا تغيّر العنوان
6. [ ] إعادة إنشاء أنفاق VPN
7. [ ] التحقق من المراقبة والإنذارات
8. [ ] إبلاغ فريق العمليات

اختبار الاستعادة ربع سنوياً

docker compose -f docker-compose.test.yml up -d
surreal import --conn http://localhost:9000 --user root --pass test123 \
  --ns factory --db production /backups/latest/factory-latest.surql
surreal sql --conn http://localhost:9000 --user root --pass test123 \
  "SELECT count() FROM sensor_readings GROUP ALL"
docker compose -f docker-compose.test.yml down -v

مثال عملي: نظام نسخ احتياطي تلقائي لبيانات المصنع

#!/bin/bash
# /opt/scripts/backup-factory.sh
set -euo pipefail
BACKUP_DIR="/backups/$(date +%Y%m%d)"
RETENTION_DAYS=30
mkdir -p "$BACKUP_DIR"

# 1. تصدير SurrealDB
surreal export --conn http://localhost:8000 --user root --pass "$DB_PASS" \
  --ns factory --db production --output "$BACKUP_DIR/surrealdb.surql"

# 2. نسخ أحجام Docker
docker run --rm -v factory-monitor_surreal-data:/data -v "$BACKUP_DIR":/backup \
  alpine tar czf /backup/volumes.tar.gz -C /data .

# 3. نسخ الإعدادات
tar czf "$BACKUP_DIR/configs.tar.gz" /opt/factory-monitor/docker-compose.yml \
  /opt/factory-monitor/.env /etc/wireguard/wg0.conf

# 4. التشفير
tar czf - "$BACKUP_DIR" | openssl enc -aes-256-cbc -salt -pbkdf2 \
  -pass file:/opt/secrets/backup-key -out "/backups/factory-$(date +%Y%m%d).tar.gz.enc"

# 5. الرفع للسحابة
rclone copy "/backups/factory-$(date +%Y%m%d).tar.gz.enc" remote:factory-backups/daily/

# 6. تنظيف النسخ القديمة
find /backups -name "*.enc" -mtime +$RETENTION_DAYS -delete
rm -rf "$BACKUP_DIR"

إدخال cron

0 2 * * * /opt/scripts/backup-factory.sh >> /var/log/backup.log 2>&1

الخلاصة

حماية البيانات تتطلب نهجاً متعدد الطبقات: قاعدة 3-2-1 تضمن بقاء النسخ بعد أي عطل منفرد، التشفير يحمي البيانات في السكون وأثناء النقل، إدارة الأسرار السليمة تمنع تسرب بيانات الاعتماد، وخطة تعافي مُختبرة تضمن قدرتك الفعلية على الاستعادة. هذا يختتم سلسلة Docker وDevOps التي غطت التغليف في حاويات والتنسيق وإدارة Linux وCI/CD والمراقبة والشبكات وحماية البيانات للبيئات الصناعية.

backup security encryption disaster-recovery secrets-management SSH-keys النسخ الاحتياطي الأمان التشفير التعافي من الكوارث إدارة المفاتيح الحماية