VPS: النسخ الاحتياطي لسيرفرات Linux باستخدام Rsync
تم إنشاء هذا الدليل باستخدام المنتجات التالية:
(قد تختلف التفاصيل مع المنتجات من مزودين مختلفين ولكن المفاهيم الرئيسية تظل كما هي)
Rsync:
يمكن عمل نسخ احتياطية باستخدام أداة Rsync.
يمكن نسخها على النظام المحلي نفسه إلى مجلد/قرص آخر أو إلى نظام بعيد.
نسخ البيانات إلى مجلد أو قرص محلي آخر:
تنبيه: التشغيل الأول قد يستغرق وقتًا أطول بكثير من التشغيلات التالية، حسب كمية البيانات. وذلك لأن Rsync في المرة الأولى يزامن كل البيانات، ومن المرة الثانية فصاعدًا يتم مزامنة البيانات التي تم تغييرها فقط.
وبالتالي يتم إنشاء نسخة احتياطية تصاعدية.
الخطوة 1
يمكن تثبيت Rsync بالأمر التالي:
apt install rsync
بعد التثبيت، يمكن استخدامه مباشرة.
- نسخ احتياطي يومي إلى مجلد/قرص محلي
- نسخ احتياطي يومي إلى نظام بعيد
الخطوة 2
في هذا المثال، مجلد Client تحت /home يجب مزامنته إلى مجلد Backups تحت /home.
يمكن تنفيذ ذلك بالأمر التالي:
rsync -arz /home/Client /home/Backup
-a=أرشفة، سيتم نسخ الخصائص
-r=تكراري، يتم مزامنة المجلدات الفرعية أيضًا
-z=ضغط، يتم ضغط البيانات حسب الكمية/الحجم
تمت مزامنة المجلد بنجاح
إذا تم حذف ملف أو شيء في مجلد العميل الآن، سيظل موجودًا في مجلد النسخ الاحتياطي.
لكن بما أن الملفات يجب أن تكون متزامنة 1:1 دائمًا، يمكن تعديل أمر rsync بسهولة، هذا التعديل سيضمن حذف البيانات التي لم تعد موجودة في مجلد العميل من مجلد النسخ الاحتياطي أيضًا.
الأمر المعدل هو:
rsync -arz --delete /home/Client /home/Backup
-a=أرشفة، سيتم نسخ الخصائص
-r=تكراري، يتم مزامنة المجلدات الفرعية أيضًا
-z=ضغط، يتم ضغط البيانات حسب الكمية/الحجم
--delete= يحذف البيانات التي لم تعد موجودة في المصدر لكنها ما زالت موجودة في الهدف
الخطوة 3
لكي لا تضطر لتنفيذ الأمر يدويًا دائمًا، يمكن وضعه ببساطة في مهمة مجدولة (cronjob).
مثلاً، يمكن إنشاء نسخة احتياطية يوميًا الساعة 3 صباحًا:
افتح crontab -e:
بالرقم 1 يمكن استخدام "nano" كمحرر. وبالرقم 2 يمكن استخدام "vim" كمحرر.
بعد فتح الملف باستخدام nano مثلاً، يمكن إنشاء وإدخال مهمة مجدولة.
يمكن إنشاء مهمة مجدولة باستخدام هذا المولد.
تبدو المهمة المجدولة المدخلة كما يلي:
0 3 * * * rsync --progress -arz --delete -e "ssh -i /home/sshkey/keybackup" /home/Client/ root@123.123.123.123:/home/Backup/Home-Server1/ >/dev/null 2>&1
يتم تنفيذ الأمر يوميًا الساعة 3 صباحًا ويتم إنشاء النسخة الاحتياطية.
الخطوة 4
في هذا المثال، مجلد Client تحت /home يجب مزامنته إلى مجلد Backups على نظام بعيد.
يتم الاتصال عبر مفتاح SSH، بحيث يمكن أتمتة النسخ الاحتياطي.
مهم: يجب أن يكون Rsync مثبتًا أيضًا على السيرفر البعيد.
apt install rsync
مثلاً، يمكن استخدام الأمر التالي لنسخ البيانات إلى المضيف البعيد (يجب التعديل حسب الحاجة):
rsync --progress -arz -e "ssh -i /home/sshkey/keybackup" /home/Client/ root@123.123.123.123:/home/Backup/Home-Server1/
-a=أرشفة، سيتم نسخ الخصائص
-r=تكراري، يتم مزامنة المجلدات الفرعية أيضًا
-z=ضغط، يتم ضغط البيانات حسب الكمية/الحجم
-e=تحديد منفذ SSH (الافتراضي 22)
تحديد مفتاح SSH (المسار)("ssh -i /home/sshkey/keybackup")= ssh -i /[مسار المفتاح]
تحديد المجلد المراد نسخه (/home/client/)= /[المجلد]
المضيف البعيد(root@123.123.123.123:)= اسم المستخدم على المضيف البعيد والعنوان: اسم@IP/نطاق
مجلد الهدف للبيانات على المضيف البعيد(:/home/Backup/Home-Server1/)= :/[مسار المجلد]
تمت مزامنة/حفظ المجلد/الملفات بنجاح إلى المجلد البعيد بعد تنفيذ الأمر.
إذا تم حذف ملف أو شيء في مجلد العميل، سيظل موجودًا في مجلد النسخ الاحتياطي على المضيف البعيد.
لكن بما أن الملفات يجب أن تكون متزامنة 1:1 دائمًا، يمكن تعديل أمر rsync بسهولة لحذف البيانات التي لم تعد موجودة في مجلد العميل من مجلد النسخ الاحتياطي على المضيف البعيد.
الأمر المعدل هو:
rsync --progress -arz --delete -e "ssh -i /home/sshkey/keybackup" /home/Client/ root@123.123.123.123:/home/Backup/Home-Server1/
-a=أرشفة، سيتم نسخ الخصائص
-r=تكراري، يتم مزامنة المجلدات الفرعية أيضًا
-z=ضغط، يتم ضغط البيانات حسب الكمية/الحجم
--delete= يحذف البيانات التي لم تعد موجودة في المصدر لكنها ما زالت موجودة في الهدف
-e=تحديد منفذ SSH (الافتراضي 22)
تحديد مفتاح SSH (المسار)("ssh -i /home/sshkey/keybackup")= ssh -i /[مسار المفتاح]
تحديد المجلد المراد نسخه (/home/client/)= /[المجلد]
المضيف البعيد(root@123.123.123.123:)= اسم المستخدم على المضيف البعيد والعنوان: اسم@IP/نطاق
مجلد الهدف للبيانات على المضيف البعيد(:/home/Backup/Home-Server1/)= :/[مسار مجلد الهدف]
الخطوة 5
لكي لا تضطر لتنفيذ الأمر يدويًا دائمًا، يمكن وضعه ببساطة في مهمة مجدولة (cronjob).
مثلاً، يمكن إنشاء نسخة احتياطية يوميًا الساعة 3 صباحًا:
افتح crontab -e:
بالرقم 1 يمكن استخدام "nano" كمحرر. وبالرقم 2 يمكن استخدام "vim" كمحرر.
بعد فتح الملف باستخدام nano مثلاً، يمكن إنشاء وإدخال مهمة مجدولة.
يمكن إنشاء مهمة مجدولة باستخدام هذا المولد.
تبدو المهمة المجدولة المدخلة كما يلي:
0 3 * * * rsync --progress -arz --delete -e "ssh -i /home/sshkey/keybackup" /home/Client/ root@123.123.123.123:/home/Backup/Home-Server1/ >/dev/null 2>&1
يتم تنفيذ الأمر يوميًا الساعة 3 صباحًا ويتم إنشاء النسخة الاحتياطية.