تشير التجربة إلى أنه لا يمكنك أبدًا أن تكون مبالغًا في الحذر بشأن نسخ النظام. عندما يتعلق الأمر بحماية والحفاظ على البيانات الثمينة، فمن الأفضل أن تتجاوز الحد الإضافي والتأكد من أنه يمكنك الاعتماد على نسخ الاحتياطي في حال الضرورة.
حتى اليوم، عندما يقدم بعض مزودي السحابة والاستضافة نسخ احتياطية آلية للخوادم الخاصة الافتراضية بتكلفة منخفضة نسبيًا، ستفعل جيدًا بإنشاء استراتيجية نسخ احتياطي خاصة بك باستخدام أدواتك الخاصة من أجل توفير بعض الأموال وبعد ذلك ربما استخدامها لشراء مساحة تخزين إضافية أو الحصول على خادم خاص افضل.
تبدو مثيرة للاهتمام؟ في هذا المقال، سنعرض لك كيفية استخدام أداة تسمى Duplicity لنسخ الاحتياطي وتشفير الملفات والمجلدات. بالإضافة إلى ذلك، سيساعدنا استخدام النسخ الاحتياطي التدريجي لهذه المهمة على توفير المساحة.
هذا قوله، دعنا نبدأ.
تثبيت أداة نسخ الاحتياطي Duplicity في Linux
لتثبيت Duplicity في توزيعات Linux مبنية على RHEL، ستحتاج إلى تمكين مستودع EPEL أولاً (يمكنك تجاهل هذه الخطوة إذا كنت تستخدم Fedora بنفسها).
على RHEL 9:
subscription-manager repos --enable codeready-builder-for-rhel-9-$(arch)-rpms dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
على CentOS 9, AlmaLinux 9, Rocky Linux 9:
dnf config-manager --set-enabled crb dnf install epel-release
على RHEL 8:
subscription-manager repos --enable codeready-builder-for-rhel-8-$(arch)-rpms dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
على CentOS 9, AlmaLinux 9, Rocky Linux 9:
dnf config-manager --set-enabled powertools dnf install epel-release
ثم قم بتشغيل،
dnf install duplicity
لـ توزيعات مبنية على Debian مثل Ubuntu و Linux Mint.
sudo apt update sudo apt install duplicity
من الناحية النظرية، يتم دعم العديد من طرق الاتصال بخادم الملفات على الرغم من أن ssh/scp/sftp، الوصول إلى الملفات المحلية، rsync، ftp، HSI، WebDAV، و Amazon S3 قد تم اختبارها في الممارسة فقط حتى الآن.
بمجرد الانتهاء من التثبيت، سنستخدم sftp حصريًا في مختلف السيناريوهات، سواء للنسخ الاحتياطي أو استعادة البيانات.
يتكون بيئة الاختبار الخاصة بنا من صندوق RHEL 8 (الذي يجب تأمينه) وآلة Debian 11 (خادم النسخ الاحتياطي).
إنشاء مفاتيح SSH لتسجيل الدخول بدون كلمة مرور إلى الخادم البعيد
لنبدأ بإنشاء مفاتيح SSH في جهازنا RHEL ونقلها إلى خادم النسخ الاحتياطي Debian.
إذا كنت تستخدم SSH على منفذ مختلف، فإن الأمر أدناه يفترض أن يكون البرنامج الخادم sshd يستمع على المنفذ XXXXX في خادم Debian. قم بتبديل AAA.BBB.CCC.DDD بعنوان IP الفعلي للخادم البعيد.
ssh-keygen -t rsa ssh-copy-id [email protected] ssh-copy-id -p XXXXX [email protected]
ثم يجب عليك التأكد من أنه يمكنك الاتصال بخادم النسخ الاحتياطي دون استخدام كلمة مرور:
ssh [email protected]

الآن نحتاج إلى إنشاء مفاتيح GPG التي ستُستخدم لتشفير وفك تشفير بياناتنا:
gpg2 --full-gen-key
ستُطلب منك إدخال:
- نوع المفتاح
- حجم المفتاح
- مدة صلاحية المفتاح
- A passphrase

لإنشاء العشوائية اللازمة لإنشاء المفاتيح، يمكنك تسجيل الدخول إلى الخادم عبر نافذة الطرفية الأخرى وتنفيذ بعض المهام أو تشغيل بعض الأوامر لتوليد العشوائية (وإلا عليك الانتظار لفترة طويلة حتى ينتهي هذا الجزء من العملية).
بمجرد إنشاء المفاتيح، يمكنك عرضها كما يلي:
gpg --list-keys

يُعرف السلسلة المظللة باللون الأصفر أعلاه باسم معرف المفتاح العام، وهو الوسيط المطلوب لتشفير ملفاتك.
إنشاء نسخة احتياطية لنظام Linux باستخدام Duplicity
للبدء ببساطة، دعنا نقوم بنسخ احتياطية فقط للمجلد /var/log، باستثناء /var/log/anaconda و /var/log/sa.
نظرًا لأن هذه هي نسختنا الاحتياطية الأولى، ستكون كاملة. ستقوم التشغيلات التالية بإنشاء نسخ احتياطية تدريجية (ما لم نُضف الخيار الكامل بدون شرطات مباشرة بجانب Duplicity في الأمر أدناه):
PASSPHRASE="tecmint" duplicity --encrypt-key 115B4BB13BC768B8B2704E5663C429C3DB8BAD3B --exclude /var/log/anaconda --exclude /var/log/sa /var/log scp://[email protected]//backups/rhel8 OR PASSPHRASE="YourPassphraseHere" duplicity --encrypt-key YourPublicKeyIdHere --exclude /var/log/anaconda --exclude /var/log/sa /var/log scp://root@RemoteServer:XXXXX//backups/rhel8
تأكد من عدم تفويت الشرطتين المائلتين في الأمر أعلاه! تُستخدم للإشارة إلى مسار مطلق لمجلد يُسمى /backups/rhel8 في صندوق النسخ الاحتياطي وهو المكان الذي ستُخزن فيه ملفات النسخ الاحتياطية.
استبدل YourPassphraseHere، YourPublicKeyIdHere، و RemoteServer بكلمة المرور التي أدخلتها سابقًا، ومعرف المفتاح العام GPG، وبعنوان IP أو اسم المضيف لخادم النسخ الاحتياطي، على التوالي.
يجب أن يكون إخراجك مشابهًا للصورة التالية:

تشير الصورة أعلاه إلى أن إجمالي 86.3 ميجابايت تم نسخها في 3.22 ميجابايت في الوجهة. دعنا ننتقل إلى خادم النسخ الاحتياطي للتحقق من النسخ الاحتياطية التي تم إنشاؤها حديثًا:

A second run of the same command yields a much smaller backup size and time:

استعادة النسخ الاحتياطية لنظام Linux باستخدام Duplicity
لاستعادة ملف بنجاح، أو مجلد مع محتوياته، أو النسخ الاحتياطي بأكمله، يجب ألا يكون المكان الوجهة موجودًا (لن يقوم Duplicity بالكتابة فوق ملف أو مجلد موجود بالفعل). للتوضيح، دعنا نحذف سجل cron في صندوق CentOS:
rm -f /var/log/cron
الصيغة لاستعادة ملف واحد من الخادم عن بعد هي:
PASSPHRASE="YourPassphraseHere" duplicity --file-to-restore filename sftp://root@RemoteHost//backups/rhel8 /where/to/restore/filename
حيث،
- اسم الملف هو الملف الذي سيتم استخراجه، بمسار نسبي إلى الدليل الذي تم حفظه
- /المكان/الذي/نريد/استعادته هو الدليل في النظام المحلي الذي نريد استعادة الملف إليه.
في حالتنا، لاستعادة سجل الكرون الرئيسي من النسخ الاحتياطي عن بُعد، نحتاج إلى تشغيل:
PASSPHRASE="YourPassphraseHere" duplicity --file-to-restore cron sftp://[email protected]:XXXXX//backups/rhel8 /var/log/cron
يجب استعادة سجل الكرون إلى الوجهة المرغوبة.
بالمثل، لا تتردد في حذف دليل من /var/log واستعادته باستخدام النسخ الاحتياطي:
rm -rf /var/log/mail PASSPHRASE="YourPassphraseHere" duplicity --file-to-restore mail sftp://[email protected]:XXXXX//backups/rhel8 /var/log/mail
في هذا المثال، يجب استعادة الدليل البريد إلى موقعه الأصلي مع جميع محتوياته.
استخدام أمر الاستعادة Duplicity
يمكنك في أي وقت عرض قائمة الملفات المؤرشفة باستخدام الأمر التالي:
duplicity list-current-files sftp://[email protected]:XXXXX//backups/rhel8
حذف النسخ الاحتياطية القديمة بعمر أكبر من 6 أشهر:
duplicity remove-older-than 6M sftp://[email protected]:XXXXX//backups/rhel8
استعادة الملف داخل الدليل جاكانيبا كما كان قبل 2 أيام و 12 ساعة:
duplicity -t 2D12h --file-to-restore gacanepa/myfile sftp://[email protected]:XXXXX//remotedir/backups /home/gacanepa/myfile
في الأمر الأخير، يمكننا رؤية مثال على استخدام الفاصل الزمني (كما هو محدد بواسطة -t): سلسلة من الأزواج حيث يتكون كل منها من رقم تليه أحد الحروف ث، د، س، ي، أ، ش، أو س (مشيرًا إلى ثوانٍ، دقائق، ساعات، أيام، أسابيع، أشهر، أو سنوات على التوالي).
الملخص
في هذا المقال، قد شرحنا كيفية استخدام Duplicity، أداة النسخ الاحتياطي التي توفر التشفير للملفات والمجلدات بشكل افتراضي. أوصي بشدة بأن تلقي نظرة على مشروع duplicity على موقع الويب لمزيد من التوثيق والأمثلة.
لقد قدمنا صفحة الرجل لـ duplicity بتنسيق PDF لراحتك في القراءة، وهو أيضًا دليل مرجعي كامل.
لا تتردد في إخبارنا إذا كان لديك أي أسئلة أو تعليقات.
Source:
https://www.tecmint.com/duplicity-create-encrypted-incremental-linux-backup/