نسخ احتياطي واستعادة صندوق بريد Zimbra CE باستخدام ملفات TGZ

لعمل نسخة احتياطية من صندوق بريد واحد في Zimbra Community Edition (CE)، قم بتصديره كملف TGZ باستخدام الأمر المناسب zmmailbox getRestURL، ثم تحقق من صحة الأرشيف، واستعده باستخدام الأمر المناسب postRestURL. عند استيراده إلى حساب يحتوي بالفعل على بريد، ابدأ بالأمر المناسب resolve=skip؛ استخدام الأمر resolve=resetالمناسب في جذر صندوق البريد قد يؤدي إلى حذف العناصر الموجودة.

افهم ما يحميه تصدير البريد الإلكتروني لكل صندوق بريد

تُتيح Zimbra تصدير واستيراد المستندات بصيغة TGZ عبر واجهة REST الخاصة بها zmmailbox. يهدف هذا الأرشيف إلى الاحتفاظ بمحتوى صندوق البريد وبنية المجلدات، بما في ذلك رسائل البريد الإلكتروني المُجمّعة كملفات EML، بالإضافة إلى بيانات التقويم، وجهات الاتصال، والمهام، أو بيانات Briefcase ذات الصلة. ويعتمد المحتوى والبيانات الوصفية التي تبقى بعد الاستيراد على إصدارات المصدر والوجهة، بالإضافة إلى العناصر المنقولة.

لا تخلط بين هذا وبين النسخ الاحتياطي الكامل للحساب أو الخادم. لا يُنشئ تصدير محتوى TGZ حسابًا مفقودًا، ولا يحفظ بشكل مستقل جميع سمات LDAP، أو كلمات المرور، أو الأسماء المستعارة، أو تعيينات فئات الخدمة، أو إعدادات التوجيه، أو عوامل التصفية، أو الصلاحيات، أو تكوين الخادم. سجّل أي إعدادات حساب مطلوبة بشكل منفصل باستخدام الإجراءات الإدارية. الأداة zmbackupالموضحة في وثائق Zimbra القديمة خاصة بإصدار الشبكة، وليست جزءًا من سير عمل CE القياسي.

تتبع أمثلة الأوامر واجهات Zimbra الموثقة، ولكنها لا تمثل اختبارًا مباشرًا لكل إصدار CE تم إنشاؤه بشكل مستقل. راجع قسم المساعدة zmcontrol -vالمتاحة zmmailboxوملاحظات إصدار نسختك قبل التخطيط لاستعادة بيئة الإنتاج. كما لا ينبغي افتراض أن تصدير REST المباشر يلتقط لحظة متسقة تمامًا إذا قام المستخدم بتغيير العناصر أثناء تشغيله. لذا، حدد فترة زمنية ذات نشاط منخفض عندما يكون الاتساق مهمًا.

تصدير صندوق البريد الفردي

1. تحديد الحساب ومضيف البريد الإلكتروني الخاص به

اتصل بخادم Zimbra باستخدام حساب نظام تشغيل يتمتع بصلاحيات المسؤول. انتقل إلى مستخدم خدمة Zimbra، ثم تأكد من وجود الحساب المستهدف. في حالة النشر على عدة خوادم، تأكد من اتصالك بخدمة البريد الإلكتروني الصحيحة.

sudo -iu zimbra
zmcontrol -v
zmprov ga user@example.com zimbraMailHost zimbraAccountStatus
zmmailbox -z -m user@example.com getAllFolders

استبدل كلمة المرور user@example.comبكلمة مرور الحساب الفعلي. -zيستخدم هذا الخيار بيانات اعتماد مسؤول Zimbra المحلي، وليس كلمة مرور المستخدم النهائي. إذا لم تكن لديك الصلاحيات الإدارية اللازمة، فاستخدم آلية معتمدة للوصول إلى الحساب بدلاً من تضمين كلمات المرور في أمر سطر الأوامر.

يعرض الطرفية عملية البحث عن حساب Zimbra مع مضيف صندوق البريد والحالة النشطة
تحقق من عنوان البريد الإلكتروني وخادم الاستضافة وحالة الحساب قبل بدء عملية التصدير.

2. إنشاء موقع أرشيف خاص

بصفتك مستخدمًا ذا صلاحيات مميزة في نظام التشغيل، أنشئ موقعًا يمكن لمستخدم خدمة Zimbra الكتابة إليه. نفّذ ذلك خارج الدلائل العامة وتحقق من المساحة الحرة أولًا. شغّل أمر التثبيت قبل التبديل إلى zimbra، أو ارجع إلى حسابك ذي الصلاحيات المميزة.

sudo install -d -o zimbra -g zimbra -m 0700 /srv/zimbra-mailbox-backups
df -h /srv/zimbra-mailbox-backups
ls -ld /srv/zimbra-mailbox-backups

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

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

3. تصدير صندوق البريد كملف TGZ

zimbraاستخدم أداة تصدير REST الموضحة أدناه من سطر الأوامر. -t 0يُعطّل هذا الخيار مهلة سطر الأوامر للعمليات الكبيرة؛ ولكنه لا يضمن عدم قدرة الخوادم الوكيلة أو عمليات الإدخال/الإخراج للقرص أو حدود الخادم على مقاطعة عملية التصدير.

umask 077
zmmailbox -z -m user@example.com -t 0 getRestURL '//?fmt=tgz' > /srv/zimbra-mailbox-backups/user-20261010.tgz

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

يعرض الطرفية أمر zmmailbox getRestURL لتصدير صندوق بريد إلى ملف TGZ
يقوم الأمر getRestURL بكتابة أرشيف مضغوط لعلبة البريد إلى الدليل المحدد.

4. تحقق من صحة الأرشيف وسجل مجموع التحقق الخاص به

لا يُعدّ وجود ملف TGZ غير فارغ دليلاً على إمكانية استعادة النسخة الاحتياطية. اختبر كامل ملف tar، وتفحّص محتويات المجلدات التمثيلية، واحسب قيمة التجزئة. في حال فشل فحص tar، يجب عليك التحقق من عملية التصدير بدلاً من استيراد الملف.

test -s /srv/zimbra-mailbox-backups/user-20261010.tgz
tar -tzf /srv/zimbra-mailbox-backups/user-20261010.tgz > /dev/null
tar -tzf /srv/zimbra-mailbox-backups/user-20261010.tgz | head -n 20
cd /srv/zimbra-mailbox-backups
sha256sum user-20261010.tgz > user-20261010.tgz.sha256

احفظ مجموع التحقق بجانب الملف المضغوط، وانقل كلا الملفين إلى وحدة تخزين محمية خارج الخادم الأصلي. بعد النسخ، شغّل الأمر sha256sum -c user-20261010.tgz.sha256في المجلد الذي يحتوي على الملفين. يُؤكد مجموع التحقق الناجح سلامة البيانات، ولكن ليس بالضرورة استعادة جميع ميزات صندوق البريد بشكل صحيح.

نافذة طرفية تعرض وجود الأرشيف، وسلامة ملف gzip، وقائمة بمجلدات صندوق البريد
افحص الأرشيف قبل التعامل مع عملية التصدير كنسخة استرداد قابلة للاستخدام.
يعرض الطرفية مجموع التحقق SHA-256 لملف TGZ الخاص بصندوق البريد
قم بتسجيل ملخص SHA-256 حتى يمكن التحقق من وجود تغييرات في الأرشيف المنقول.

استعادة الأرشيف دون الكتابة فوق البريد الإلكتروني النشط

5. تجهيز وفحص صندوق البريد الوجهة

أنشئ حساب الوجهة من خلال عملية التزويد المعتادة والمعتمدة في Zimbra إذا لم يكن موجودًا بالفعل؛ لن يقوم استيراد ملف TGZ بإنشائه. تحقق من عنوانه، وحصته، وصلاحيات الوصول إلى الخدمة، والمجلدات الموجودة فيه. في الاختبار الأول، استخدم حسابًا معزولًا غير مخصص للإنتاج، خاصةً لعمليات نقل البيانات بين الإصدارات المختلفة.

sudo -iu zimbra
zmprov ga user@example.com zimbraMailHost zimbraAccountStatus
zmmailbox -z -m user@example.com getAllFolders

انسخ الأرشيف المُدقَّق إلى مجلد يمكن لمستخدم خدمة Zimbra الوجهة قراءته، مع الاحتفاظ بالصلاحيات المقيدة. في حالة النقل عن بُعد، تحقق من المجموع الاختباري مرة أخرى في الوجهة. لا تفترض أن الحساب الذي يحمل نفس العنوان فارغ.

نافذة طرفية تعرض سمات الحساب من أمر تهيئة Zimbra
تأكد من وجود حساب الوجهة المقصود قبل استيراد عناصر صندوق البريد.

6. الاستيراد باستخدام سياسة تعارض تتناسب مع الوجهة

لإضافة العناصر المفقودة مع الإبقاء على العناصر المطابقة في مكانها، استخدم resolve=skip. هذا هو السلوك الافتراضي الموثق للتعامل مع العناصر المكررة، ولكنه لا يضمن دمجًا مثاليًا لكل نوع أو إصدار من العناصر.

zmmailbox -z -m user@example.com -t 0 postRestURL '//?fmt=tgz&resolve=skip' /srv/zimbra-mailbox-backups/user-20261010.tgz

تجنب نسخ مثال مُدمِّر إلى بيئة الإنتاج. تُوثِّق زيمبرا resolve=resetحذف عناصر الوجهة قبل الاستيراد. كما تُغيِّر replaceالسياسات modifyطريقة التعامل مع العناصر الموجودة. لا تُفكِّر في استخدامها إلا لاستعادة مُتحكَّم بها بعد الاختبار والحصول على الموافقة على نطاق الحساب والمجلد المُحدَّد.

يعرض الطرفية عنوان URL الخاص بـ zmmailbox postRestURL مع خيار resolve=skip
استورد الأرشيف مع سياسة تخطي التعارض عندما يجب الاحتفاظ بمحتوى صندوق البريد الحالي.

معالجة حالات فشل التصدير والتحقق من الاسترداد

في حال حدوث انقطاع في الاتصال، احتفظ -t 0بسجلات مهلة الخادم أو الخادم الوكيل وحدود التخزين واطلع عليها؛ إذ لا يحلّ ضبط مهلة سطر الأوامر على الصفر جميع مشاكل الشبكة. كما يحذر موقع دعم Zimbra من احتمالية تلف الأرشيفات وفشل عمليات الإدخال/الإخراج عند تصدير بعض صناديق البريد الكبيرة. في حال كان حجم عملية التصدير كبيرًا جدًا أو غير موثوق، قسّم العمل حسب المجلد أو التاريخ، ثم اختبر كل أرشيف واستيراده على حساب احتياطي.

على سبيل المثال، يحدد استعلام البحث الموثق under:Inboxمحتوى البريد الوارد ومجلداته الفرعية. علامات الاقتباس المحيطة بعنوان URL الخاص بـ REST ضرورية لأن علامة العطف (&) يجب أن تصل إلى Zimbra وليس إلى سطر الأوامر.

zmmailbox -z -m user@example.com -t 0 getRestURL '//?fmt=tgz&query=under:Inbox' > /srv/zimbra-mailbox-backups/inbox-20261010.tgz

لا يُعدّ الأرشيف المُقتصر على المجلدات بديلاً عن تصدير صندوق البريد بالكامل. تحقق من محتوياته بشكل مستقل، ووثّق المجلدات أو التواريخ التي تم حذفها. إذا كان الحساب مُعطّلاً أو أعاد الطلب خطأً في التفويض، فافحص حالة الحساب ومصادقة المسؤول بدلاً من تجاوز فحوصات شهادة TLS أو كشف بيانات الاعتماد.

7. تحقق من العناصر المستعادة، وليس فقط من أمر الخروج.

قم بإدراج مجلدات الوجهة وقارنها بمجلدات المصدر المسجلة وقائمة جرد TGZ:

zmmailbox -z -m user@example.com getAllFolders
zmmailbox -z -m user@example.com getMailboxSize

ثم سجّل الدخول إلى حساب الاختبار المستهدف وافتح عينة من الرسائل المُستلمة والمُرسلة، والمرفقات، وجهات الاتصال، وأحداث التقويم. تحقّق من التواريخ ومسارات المجلدات، وراجع أي أخطاء في الاستيراد. أعد إنشاء أو تحقّق من الأسماء المستعارة، وأذونات المشاركة، والقواعد، وإعدادات الحساب الأخرى بشكل منفصل عند الحاجة. لا تعتبر عملية الاسترداد ناجحة إلا بعد أن تصبح البيانات المتوقعة متاحة ويتم تسجيل عمليات التحقق.

عرض الطرفية لأسماء مجلدات Zimbra التي تم إرجاعها بواسطة getAllFolders
قارن مجلدات البريد الوارد، والبريد المرسل، والتقويم، وغيرها من المجلدات التي تم استعادتها مع محتويات الأرشيف المتوقعة.

المراجع الأساسية: مرجع أوامر Zimbra zmmailbox ، ومرجع واجهة برمجة تطبيقات Zimbra REST ، ومرجع إدارة Zimbra zmprov ، ومقال Zimbra حول عمليات التصدير ذات النطاق المحدد وتحذيرات الأرشيفات الكبيرة . بعض أمثلة Zimbra wiki قديمة أو قيد التطوير؛ تحقق من سلوكها على إصدار CE المثبت لديك قبل الاعتماد عليها في بيئة الإنتاج.

اترك تعليقاً

أتمتة عمليات النسخ الاحتياطي المتسقة لـ Nextcloud باستخدام Restic و Cron

أتمتة عمليات النسخ الاحتياطي المتسقة لـ Nextcloud باستخدام Restic و Cron

قم بعمل نسخ احتياطية لملفات Nextcloud و MariaDB معًا، وجدول لقطات Restic المشفرة باستخدام cron، وتحقق من الاستعادة دون المخاطرة بالخادم المباشر.

تشغيل خادم أوبونتو في وضع الطوارئ: دليل إنقاذ خطوة بخطوة

تشغيل خادم أوبونتو في وضع الطوارئ: دليل إنقاذ خطوة بخطوة

قم بتشخيص وضع الطوارئ في خادم أوبونتو بأمان. اقرأ سجلات بدء التشغيل، وتحقق من مجلدات الجذر و fstab، وأصلح الوحدة المعطلة، وتعامل مع أخطاء نظام الملفات، وتحقق من إعادة التشغيل النظيفة.

نسخ احتياطي واستعادة صندوق بريد Zimbra CE باستخدام ملفات TGZ

نسخ احتياطي واستعادة صندوق بريد Zimbra CE باستخدام ملفات TGZ

قم بتصدير صندوق بريد فردي من إصدار Zimbra Community Edition، وتحقق من صحة نسخة TGZ الاحتياطية الخاصة به، واستعد العناصر المفقودة دون الكتابة فوق البريد الموجود.

السماح للمستخدمين المعتمدين بإنشاء غرف Jitsi باستخدام تسجيل الدخول عبر Keycloak

السماح للمستخدمين المعتمدين بإنشاء غرف Jitsi باستخدام تسجيل الدخول عبر Keycloak

السماح فقط للحسابات المعتمدة ببدء غرف Jitsi Meet باستخدام Keycloak ومصادقة الرمز المميز، مع إبقاء إمكانية انضمام الضيوف متاحة عند الحاجة.

مزامنة مستخدمي Active Directory مع ONLYOFFICE DocSpace عبر LDAP

مزامنة مستخدمي Active Directory مع ONLYOFFICE DocSpace عبر LDAP

قم بتوصيل ONLYOFFICE DocSpace بـ Active Directory أو OpenLDAP، واستورد المستخدمين والمجموعات بأمان، وقم بتعيين حقول الحساب، وجدول مزامنة موثوقة.

إضافة الخطوط إلى خادم مستندات ONLYOFFICE: دوكر مقابل لينكس

إضافة الخطوط إلى خادم مستندات ONLYOFFICE: دوكر مقابل لينكس

قم بتثبيت الخطوط المخصصة في خادم مستندات ONLYOFFICE، وقارن عمليات تحميل Docker الدائمة مع النسخ المباشرة، وأعد بناء قائمة الخطوط، وتحقق من النتيجة.

دبيان 12 على خادم افتراضي خاص ذي ذاكرة وصول عشوائي منخفضة: كيفية تقليل أعطال نفاد الذاكرة في MySQL

دبيان 12 على خادم افتراضي خاص ذي ذاكرة وصول عشوائي منخفضة: كيفية تقليل أعطال نفاد الذاكرة في MySQL

تشخيص عمليات إيقاف MySQL بسبب نفاد الذاكرة على Debian 12، والتحقق من حدود ذاكرة VPS، وتكوين التبديل، وضبط ذاكرة قاعدة البيانات والتزامن دون تقديم حل شامل.

تثبيت وتوقيع وحدات نواة مخصصة على نظام التشغيل SLES 15 Secure Boot

تثبيت وتوقيع وحدات نواة مخصصة على نظام التشغيل SLES 15 Secure Boot

قم بتحميل وحدة نواة SLES 15 مخصصة دون تعطيل خاصية التمهيد الآمن. طابق النواة قيد التشغيل، ووقّع ملف .ko، وسجّل مفتاح MOK، وتحقق من التحميل.

ضع مستندات ONLYOFFICE خلف HAProxy دون تعطيل التحرير

ضع مستندات ONLYOFFICE خلف HAProxy دون تعطيل التحرير

قم بتكوين HAProxy HTTPS، وإعادة توجيه الرؤوس، ومهلات WebSocket، وفحوصات السلامة لـ ONLYOFFICE Docs، ثم تحقق من التحرير والحفظ.

إعادة توجيه سجلات النظام الآمنة في SLES باستخدام rsyslog وبروتوكول TLS المتبادل

إعادة توجيه سجلات النظام الآمنة في SLES باستخدام rsyslog وبروتوكول TLS المتبادل

إرسال سجلات نظام SLES إلى جامع rsyslog عن بعد عبر TLS مصادق عليه، مع عمليات التحقق من الشهادات، وتخزين الانقطاعات مؤقتًا، واختبارات التسليم.