كيفية استخدام Duplicity لأتمتة النسخ الاحتياطي

النسخ الاحتياطي الآلية Duplicity ubuntu redhat centos debian windows macos

Duplicity هو أداة قوية مفتوحة المصدر للنسخ الاحتياطي تسمح بإجراء نسخ احتياطي مشفرة وتزايدية. يدعم مجموعة متنوعة من البنى الخلفية لتخزين بيانات النسخ الاحتياطي بما في ذلك أنظمة الملفات المحلية أو البعيدة ، FTP ، SSH ، WebDAV وخدمات التخزين السحابي. يستخدم Duplicity GnuPG لتشفير وتوقيع أرشيفات النسخ الاحتياطي.

في هذا الدليل الشامل ، سنغطي كيفية تثبيت وتكوين Duplicity ثم استخدامه لإعداد النسخ الاحتياطي الآلية على لينكس.

تثبيت Duplicity

Duplicity متاح في المستودعات الافتراضية لمعظم توزيعات لينكس.

على دبيان/أوبنتو

$ sudo apt update
$ sudo apt install duplicity

على CentOS/RHEL

$ sudo yum install epel-release
$ sudo yum update
$ sudo yum install duplicity

على أرخ لينكس

$ sudo pacman -S duplicity

على فيدورا

$ sudo dnf install duplicity

بالنسبة لتوزيعات لينكس الأخرى ، راجع مدير الحزم الخاص بك.

بمجرد التثبيت ، تحقق من توفر Duplicity عن طريق التحقق من الإصدار:

$ duplicity --version

إنشاء مفاتيح GPG

يستخدم Duplicity مفاتيح GnuPG لتشفير و/أو توقيع أرشيفات النسخ الاحتياطي. نحتاج إلى إنشاء زوج مفاتيح لهذا الغرض.

استورد حزمة أدوات GPG إذا لم يتم تثبيتها بالفعل:

$ sudo apt install gnupg

أنشئ زوج مفاتيح جديد باستخدام تشفير RSA.

$ gpg --gen-key

اختر نوع المفتاح على أنه “RSA و RSA” بحجم 4096 بت. اضبط فترة انتهاء الصلاحية إذا لزم الأمر.

قدِّم تفاصيلك لمعرف المستخدم مثل الاسم والبريد الإلكتروني وما إلى ذلك. أضف عبارة مرور آمنة للمفاتيح. سيتم إنشاء زوج مفاتيح عامة/خاصة لك.

اعرض المفاتيح لإيجاد معرف المُعرّف:

$ gpg --list-keys

صدّر المفتاح العام للنسخ الاحتياطي. استبدل معرف المُعرّف بشكل مناسب:

$ gpg -a --export 1234ABCD > public.gpg

يحتاج المفتاح العام إلى نقله إلى أي تخزين خلفي بعيد تعتزم استخدامه مثل SSH أو التخزين السحابي. يجب الاحتفاظ بالمفتاح الخاص بأمان على النظام المحلي لأداء النسخ الاحتياطي.

تكوين Duplicity

يدعم Duplicity مجموعة متنوعة من مخازن البيانات الخلفية مثل المحلية ، SSH ، FTP ، WebDAV وما إلى ذلك. سننظر في تكوين بعض البنى الخلفية الشائعة:

نظام ملفات محلي

للنسخ الاحتياطي إلى دليل محلي ، اضبط عنوان URL لوجهة النسخ الاحتياطي مثل:

file:///home/user/backups  

SSH

للنسخ الاحتياطي إلى نظام بعيد عبر SSH:

ssh://user@host//path/to/backup

يفترض ذلك أنك قمت بإعداد دخول SSH بين الأنظمة.

Amazon S3

للنسخ الاحتياطي إلى دلو Amazon S3:

s3://s3-bucket-name[/prefix]

يمكن توفير بيانات اعتماد S3 عبر ملف ~/.boto config أو متغيرات البيئة.

انظر وثائق Duplicity S3 Backend للتفاصيل.

Google Cloud Storage

للنسخ الاحتياطي إلى Google Cloud Storage:

gs://cloud-storage-bucket[/prefix] 

يمكن القيام بالمصادقة بعدة وسائل بما في ذلك ملفات حساب الخدمة ، ملفات JSON ADC أو متغيرات البيئة.

راجع قسم GCS Backend في التوثيق للمزيد من التفاصيل.

Swift

للنسخ الاحتياطي إلى حاوية OpenStack Swift:

swift://container_name[/prefix]

يتم المصادقة عبر متغيرات بيئة. راجع وثائق Swift Backend.

WebDAV

لاستخدام خادم WebDAV كبنية خلفية:

webdav[s]://hostname[:port]/path 

سيطلب Duplicity اسم المستخدم/كلمة المرور عند الحاجة.

راجع واجهة برمجة تطبيقات WebDAV للتفاصيل.

بهذه الطريقة ، يمكنك تكوين النسخ الاحتياطي إلى مجموعة متنوعة من نقاط النهاية للتخزين. الآن نحن جاهزون لإنشاء أول نسخة احتياطية.

إنشاء نسخ احتياطية

مع تكوين عنوان URL للبنية الخلفية ، يمكننا الآن إجراء نسخة احتياطية كاملة.

ضع متغير البيئة التالي لتجنب المطالبات التفاعلية:

export PASSPHRASE=your_passphrase

ثم قم بتشغيل نسخة احتياطية كاملة:

$ duplicity /path/to/source dir file:///path/to/destination

سيقوم هذا بالنسخ الاحتياطي المتكرر لدليل /path/to/source إلى الوجهة المحلية /path/to/destination.

للنسخ الاحتياطي إلى موقع بعيد عبر SSH:

$ duplicity /path/to/source ssh://user@host//backup/path

للنسخ الاحتياطي إلى التخزين السحابي:

$ duplicity /local/source s3://s3-bucket[/prefix]

سيطلب Duplicity أي بيانات اعتماد مطلوبة مثل كلمة مرور SSH أو مفاتيح سرية لـ AWS. سيتم تشفير النسخة الاحتياطية وتخزينها في الوجهة.

للنسخ الاحتياطي لمجلدات معينة فقط ، حددها كمسارات تتضمن. على سبيل المثال:

$ duplicity include /path/to/folders1 include /path/to/folders2 /path/to/source file:////path/to/destination

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

بعد النسخة الاحتياطية الكاملة الأولية ، ستكون النسخ الاحتياطية اللاحقة تزايدية. هذا يوفر الوقت ومساحة التخزين. يستخدم Duplicity librsync لتحديد المحتوى المعدل بكفاءة.

لإجبار نسخة احتياطية كاملة بدلاً من التزايدية ، استخدم خيار --full-if-older-than:

$ duplicity --full-if-older-than 60D /path/to/source ssh://user@host//path/to/backup 

سيقوم هذا بإجراء نسخة احتياطية كاملة إذا كانت آخر نسخة احتياطية كاملة أقدم من 60 يومًا.

جدولة النسخ الاحتياطية باستخدام Cron

يمكننا أتمتة نسخ Duplicity الاحتياطية باستخدام وظائف Cron.

افتح crontab للتحرير:

$ crontab -e

أضف جدولة cron مثل:

0 1 * * * /usr/bin/duplicity /path/to/source ssh://user@host//backup/path

سيقوم هذا بتشغيل وظيفة النسخ الاحتياطي يوميًا الساعة 1 صباحًا.

للنسخ الاحتياطية الأسبوعية:

0 1 * * 0 /usr/bin/duplicity /path/to/source ssh://user@host//backup/path

سيتم تشغيل هذا النسخ الاحتياطي كل أحد الساعة 1 صباًحا.

وبالمثل ، يمكنك جدولة نسخ احتياطية شهرية ، سنوية ، وما إلى ذلك.

لمزيد من التحكم ، يمكنك تشغيل وظائف كاملة وتزايدية منفصلة:

0 1 * * * /usr/bin/duplicity --full-if-older-than 30D /path/to/source ssh://user@host//path/to/full/backup
0 */4 * * * /usr/bin/duplicity /path/to/source ssh://user@host//path/to/incr/backup

سيقوم هذا بتشغيل نسخة احتياطية كاملة في اليوم الأول من الشهر وتزايدية كل 4 ساعات.

تذكر إعادة توجيه الإخراج إذا كانت المهام تنتج الكثير من المخرجات لتجنب البريد الإلكتروني العشوائي.

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

لاستعادة آخر إصدار من النسخة الاحتياطية:

$ duplicity restore ssh://user@host//backup/path /local/restore/path

سيقوم هذا باستعادة النسخة الاحتياطية المتوفرة في الموقع البعيد إلى المسار المحلي المحدد.

لاستعادة إصدار سابق من تاريخ محدد:

$ duplicity restore --time 2020-01-01T12:30:00 ssh://user@host//backup/path /local/restore/path

قائمة جميع إصدارات النسخ الاحتياطية المخزنة:

$ duplicity collection-status ssh://user@host//backup/path

حذف النسخ الاحتياطية القديمة:

$ duplicity remove-older-than 6M --force ssh://user@host//backup/path

سيقوم هذا بحذف جميع إصدارات النسخ الاحتياطية الأقدم من 6 أشهر.

بهذه الطريقة ، يمكنك إدارة أرشيفات النسخ الاحتياطي الخاصة بك. استعادة الإصدارات المحددة عند الحاجة.

Duplicity على Mac مع Homebrew

على MacOS ، يمكن تثبيت Duplicity عبر Homebrew:

$ brew install duplicity

يظل الاستخدام كما هو على لينكس:

$ duplicity /path/to/source /path/to/destination

جدولة نسخ احتياطي cron بنفس الطريقة باستخدام crontab الأصلي:

$ crontab -e

Duplicity على Windows

يمكن تثبيت Duplicity على Windows باستخدام بيئة لينكس Cygwin.

أولاً، ثبّت Cygwin مع حزم rsync و python.

ثم قم بتثبيت Duplicity عبر pip:

C:\> pip install duplicity

الآن يمكنك استخدام Duplicity للنسخ الاحتياطي للملفات محليًا أو إلى مشاركات Windows عن بُعد:

C:\> duplicity C:\Users\user\Documents E:\Backups

أتمتة النسخ الاحتياطية المجدولة باستخدام جدول المهام.

تتوفر أيضًا نسخة Windows الأصلية من Duplicity تسمى cwDup ، على الرغم من تقليص الوظيفة.

أفضل الممارسات لـ Duplicity

فيما يلي بعض أفضل الممارسات لاتباعها عند استخدام Duplicity:

  • النسخ الاحتياطي إلى تخزين بعيد أو غير متصل للحماية من البرمجيات الخبيثة وفدية البرامج الخبيثة وما إلى ذلك.
  • شفرة ووقع النسخ الاحتياطية لضمان الأمان. حماية مفتاحك الخاص GPG بعبارة مرور.
  • التحقق من صحة النسخ الاحتياطية عن طريق إجراء استعادات دورية.
  • الاحتفاظ بإصدارات متعددة ولكن تنظيف النسخ الاحتياطية القديمة لتوفير المساحة.
  • قم بتخزين البيانات الوصفية مثل مفاتيح GPG والتكوينات بشكل منفصل عن بيانات النسخ الاحتياطي.
  • اختبر أن النسخ الاحتياطية تعمل قبل الاعتماد عليها للاستعادة.
  • أتمتة حسب جدول زمني ولكن قم أيضًا بالنسخ الاحتياطي يدويًا بعد التغييرات المهمة.
  • أرسل سجلات/إشعارات النسخ الاحتياطي لمراقبة حالة المهمة.
  • قسم المجلدات الكبيرة عبر محركات أقراص متعددة للحصول على إنتاجية أفضل.
  • التقاط لقطات النسخ الاحتياطي لتجنب النسخ الاحتياطي للملفات المفتوحة في حالة غير مستقرة.
  • عزل النسخ الاحتياطية عن الشبكة بفجوة هوائية للحصول على أقصى أمان.

الخلاصة

Duplicity هو حل مفتوح المصدر قوي للنسخ الاحتياطية المشفرة التزايدية. إنه يوفر الكثير من المرونة في خيارات تخزين البنية الخلفية. يسمح استخدام تشفير GPG بنقل وتخزين آمنين لأرشيفات النسخ الاحتياطي.

مع هذا الدليل ، يجب أن تكون الآن قادرًا على إعداد وظائف النسخ الاحتياطي الآلية لـ Duplicity إلى موقع محلي أو بعيد. يحمي تخزين النسخ الاحتياطية خارج الموقع أو في التخزين السحابي من الكوارث المحلية ويوفر الاحتياطي.

يضمن الاختبار والتحقق المنتظم من النسخ الاحتياطية حماية بياناتك عند الحاجة للاستعادة. يساعد اتباع أفضل الممارسات حول الأمان والتحقق والمراقبة في الحفاظ على نسخ احتياطية قوية.

LEAVE A COMMENT