كيفية نقل مجلد بيانات Nextcloud بأمان إلى قرص صلب خارجي

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

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

قبل البدء: ما الذي تم التحقق منه، وما الذي يعتمد على إعداداتك؟

سؤالإجابة عملية
هل يمكنني التعديل datadirectoryمباشرةً config.php؟لا يُنصح باستخدامه بمفرده. تشير وثائق Nextcloud إلى أن تغيير مسار التخزين المحلي المطلق قد يؤدي إلى تعطيل علاقات قاعدة البيانات. يُفضل الاحتفاظ بالمسار الأصلي باستخدام رابط رمزي.
هل أحتاج إلى نسخة احتياطية كاملة؟نعم. تتضمن وثائق النسخ الاحتياطي لـ Nextcloud معلومات التكوين، ومجلد البيانات، وقاعدة البيانات، وبيانات التطبيقات/السمات المخصصة ذات الصلة. لا تعتمد على القرص القديم كنسخة احتياطية وحيدة.
هل يجب أن يكون القرص الصلب الخارجي بنظام الملفات ext4؟لا يفرض هذا الإجراء استخدام نظام ملفات محدد. تستخدم الأمثلة أدناه نظام ext4 لأن سلوك الملكية والأذونات في لينكس بسيط ومباشر. قد تتطلب أنظمة الملفات الأخرى خيارات ربط مختلفة.
هل يجب أن أركض files:scan --allبعد ذلك؟لا يُنصح باستخدامه عادةً عند نقل الملفات مع الحفاظ على مسارها. استخدمه عندما تكون الملفات مفقودة بالفعل من ذاكرة التخزين المؤقت للملفات أو عندما يتم نسخ الملفات إلى شجرة البيانات خارج Nextcloud وتحتاج إلى إعادة فحص فورية.
هل القرص الصلب الخارجي (USB) موثوق به مثل القرص الصلب الداخلي؟يعتمد ذلك على نوع الحاوية، والكابل، ومصدر الطاقة، ونظام الملفات، والجهاز المضيف. يُعدّ تعطل محرك الأقراص القابل للإزالة خطرًا على التوافر، لذا اجعل عملية التثبيت دائمة وتحقق منها قبل تشغيل Nextcloud.

1. قم بتثبيت محرك الأقراص الخارجي في مسار ثابت

حدد أولًا الجهاز ونظام الملفات. في لينكس، تُظهر أوامر مثل ` lsblk -ffstab` و`fstab` blkidمُعرّف نظام الملفات الفريد (UUID). تجنب إنشاء تكوين دائم حول اسم جهاز مثل `fstab`؛ إذ قد تتغير أسماء أجهزة لينكس عند إضافة أجهزة جديدة أو تغيير ترتيب الكشف. يوصي دليل fstab/dev/sdb1 في لينكس باستخدام مُعرّفات UUID أو LABEL للتركيبات الدائمة.

lsblk -f
sudo blkid /dev/sdb1
sudo mkdir -p /mnt/nextcloud-data-storage

أضف إدخالاً مناسباً إلى الملف /etc/fstab. استبدل مُعرّف UUID ونوع نظام الملفات في المثال بقيم من قرصك الخاص:

UUID=YOUR-FILESYSTEM-UUID  /mnt/nextcloud-data-storage  ext4  defaults  0  2

ثم اختبر التثبيت قبل لمس Nextcloud:

sudo mount -a
findmnt /mnt/nextcloud-data-storage
df -h /mnt/nextcloud-data-storage
طرفية لينكس تعرض أوامر lsblk و blkid، بالإضافة إلى مدخل UUID في ملف fstab، و mount -a، و findmnt لمحرك أقراص Nextcloud الخارجي.

تحقق من القرص الخارجي باستخدام UUID وتأكد من نقطة التحميل قبل نقل أي ملفات Nextcloud.

مفهوم خاطئ شائع: وجود مجلد باسم معين /mnt/nextcloud-data-storageلا يثبت بالضرورة أن القرص مُثبّت عليه. في حال عدم وجود القرص، قد يظل مجلد نقطة التثبيت موجودًا على قرص النظام. الإجراء: استخدم findmntالأمر المناسب mountpointفي كل مرة تختبر فيها عملية النقل وبعد إعادة تشغيل الجهاز.

٢. قم بعمل نسخة احتياطية من Nextcloud وأوقف عمليات الكتابة

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

بعد ذلك، فعّل وضع الصيانة من مجلد تثبيت Nextcloud. في نظامي Debian وUbuntu، يكون حساب خادم الويب عادةً كالتالي www-data:

cd /var/www/nextcloud
sudo -E -u www-data php occ maintenance:mode --on

تنص إرشادات الترحيل أيضًا على عدم تشغيل أي مهمة مجدولة (cron job) أثناء عملية النقل، وتوصي بإيقاف خوادم الويب/التطبيقات أثناء نقل البيانات. وتختلف طريقة القيام بذلك باختلاف بيئة النشر: فلكل من Apache وNginx مع PHP-FPM وDocker Compose وSnap وAIO وKubernetes حدود خدمة مختلفة.

الإجراء: عطّل إدخال Cron الخاص بـ Nextcloud أو أوقف خدمة Cron ذات الصلة، ثم أوقف خدمة الويب/التطبيق قبل النسخ النهائي. إذا كانت مجموعة البيانات كبيرة جدًا، يمكنك تهيئة القرص الخارجي مسبقًا أثناء اتصال الموقع بالإنترنت، ثم الدخول في وضع الصيانة، وإيقاف عمليات الكتابة، وإجراء عملية rsyncنسخ نهائية لالتقاط التغييرات.

3. انسخ مجلد البيانات بالكامل، بما في ذلك الملفات المخفية

لا تنسخ مجلدات المستخدم فقط. يحتوي مجلد البيانات أيضًا على ملفات مخفية مثل .ncdataبيانات التطبيق التي تنتمي إلى وحدة التخزين. يُشير Nextcloud صراحةً إلى الملفات المخفية/الملفات التي تنتهي بنقطة في عملية النقل.

افترض أن المجلد الحالي هو [ /var/www/nextcloud/dataالمجلد الحالي] وأن القرص الخارجي مُثبّت في [ المجلد الخارجي /mnt/nextcloud-data-storage]. أنشئ الوجهة وانسخ المجلد:

sudo mkdir -p /mnt/nextcloud-data-storage/data
sudo rsync -Aax --info=progress2   /var/www/nextcloud/data/   /mnt/nextcloud-data-storage/data/

تستخدم وثائق استعادة Nextcloud rsync -Aaxمثالًا للحفاظ على شجرة الدليل والبيانات الوصفية. بالنسبة للتركيبات الكبيرة جدًا، قم بتشغيل عملية ثانية بعد إيقاف جميع عمليات الكتابة وافحص الناتج. قد تختلف الخيارات المطلوبة إذا كان مصدرك يستخدم قوائم التحكم بالوصول (ACLs) أو السمات الموسعة أو أنظمة الملفات غير التقليدية أو التخزين المُثبَّت على الحاوية.

يعرض الطرفية وضع صيانة Nextcloud، وتوقف cron، و rsync يقوم بنسخ دليل البيانات بالكامل بما في ذلك .ncdata إلى محرك أقراص خارجي

أوقف عمليات الكتابة في الخلفية وانسخ شجرة البيانات بالكامل، بما في ذلك ملفات بيانات تعريف Nextcloud المخفية.

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

4. الحفاظ على مسار البيانات الأصلي باستخدام رابط رمزي

هذا هو إجراء السلامة الأساسي. لنفترض أن Nextcloud يستخدم حاليًا ما يلي:

'datadirectory' => '/var/www/nextcloud/data',

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

sudo mv /var/www/nextcloud/data /var/www/nextcloud/data.old
sudo ln -s /mnt/nextcloud-data-storage/data /var/www/nextcloud/data
ls -ld /var/www/nextcloud/data

يوثق Nextcloud طريقة الربط الرمزي هذه لأن التخزين المحلي يُعرَّف بالمسار المطلق. ومع وجود الرابط، يستمر Nextcloud في رؤية /var/www/nextcloud/dataالبيانات حتى وإن كانت موجودة على القرص الخارجي.

تحقق من ملكية البيانات قبل إجراء تغييرات واسعة النطاق على الأذونات:

stat -c '%U:%G %a %n' /var/www/nextcloud/data.old
stat -c '%U:%G %a %n' /mnt/nextcloud-data-storage/data
namei -l /mnt/nextcloud-data-storage/data

يجب أن يكون مستخدم HTTP قادرًا على تصفح الدلائل الرئيسية وقراءة/كتابة دليل البيانات. يختلف المالك الصحيح باختلاف التوزيعة وطريقة التثبيت. تشير وثائق Nextcloud (occ) إلى أن حساب HTTP شائع www-dataفي Debian/Ubuntu، apacheوفي Fedora/CentOS، ويختلف في الأنظمة الأخرى.

نافذة طرفية تعرض عمليات التحقق من الملكية ورابطًا رمزيًا من مسار بيانات Nextcloud الأصلي إلى محرك الأقراص الخارجي

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

مفهوم خاطئ شائع: تشغيل أمر عام بشكل متكرر chmod 777يُصلح الأذونات. قد يُخفي هذا المشكلة الحقيقية ويُضعف الأمان. الحل: قارن المجلد الجديد مع ملكية المجلد الأصلي وأذوناته، واحتفظ بقوائم التحكم بالوصول (ACLs) حيثما استُخدمت، وقم بإجراء الحد الأدنى من التصحيحات اللازمة لمستخدم HTTP فقط.

ماذا لو كنت ترغب حقًا في التغيير datadirectory؟

يُقدّم Nextcloud شرحًا لإجراءٍ لا يعتمد على الروابط الرمزية، لكنّ نفس الوثائق تُصنّفه على أنّه غير مدعوم، وتُحذّر من أنّه قد يُؤدّي إلى تلف قاعدة البيانات. ويتطلّب هذا الإجراء تغيير config.phpوتحديث local::/old-data-dir/السجلّ المُطابق في oc_storagesالجدول.

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

5. أعد التشغيل، وتحقق من عملية التثبيت، وأعد تشغيل Nextcloud.

قبل بدء تشغيل Nextcloud، تأكد من أن نظام الملفات الخارجي مثبت بالفعل وأن الرابط الرمزي يؤدي إليه:

findmnt /mnt/nextcloud-data-storage
readlink -f /var/www/nextcloud/data
sudo -E -u www-data test -r /var/www/nextcloud/data/.ncdata && echo readable

أعد تشغيل خدمة الويب/التطبيق، ثم فعّل مهمة Nextcloud المجدولة باستخدام الطريقة المناسبة لبيئة النشر لديك. بعد ذلك، أوقف وضع الصيانة وتحقق من حالة الخادم.

cd /var/www/nextcloud
sudo -E -u www-data php occ maintenance:mode --off
sudo -E -u www-data php occ status

سجّل الدخول واختبر عدة عمليات: افتح ملفًا موجودًا، حمّل ملفًا جديدًا، أعد تسميته، احذفه، استعده من سلة المهملات، وتأكد من قدرة عميل آخر على مزامنته. أعد تشغيل الجهاز المضيف مرة واحدة وكرر العملية findmnt؛ فهذا يكشف أي /etc/fstabإدخال غير صالح قبل أن يصبح مفاجأة أثناء انقطاع الخدمة.

التحقق من حالة Nextcloud وربط نظام الملفات الخارجي بجانب واجهة ملفات Nextcloud.

بعد التبديل، تحقق من كل من عملية تحميل نظام التشغيل وعمليات الملفات العادية في Nextcloud.

هل تحتاج occ files:scan --all؟

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

الإجراء: اختبر واجهة المستخدم أولاً وقارن الملفات المتوقعة. إذا كانت الملفات مفقودة من Nextcloud رغم وجودها على القرص، فاستخدم فحصًا مُوجَّهًا، أو عند الضرورة، قم بإصلاحها files:scan --all. يُرجى العلم أن الفحص الكامل على نظام كبير قد يستغرق وقتًا طويلاً.

قائمة التحقق النهائية للهجرة

  • توجد قاعدة بيانات حالية، وتكوين، ونسخة احتياطية من البيانات خارج القرص الذي يتم ترحيله.
  • يحتوي نظام الملفات الخارجي على نقطة تحميل مستقرة تم تكوينها بواسطة UUID أو LABEL.
  • findmntيؤكد ذلك أن القرص الصلب الخارجي مثبت بالفعل.
  • يتم إيقاف عمليات الكتابة في Nextcloud ووظائف cron أثناء عملية المزامنة النهائية.
  • .ncdataتم نسخ دليل البيانات بالكامل، بما في ذلك المجلد .
  • يتم الحفاظ على مسار الملف الأصلي datadirectoryباستخدام رابط رمزي.
  • يمكن لمستخدم HTTP اجتياز مسار التحميل وقراءة/كتابة البيانات.
  • يبدأ Nextcloud بدون أخطاء في التخزين ويعمل occ statusبشكل طبيعي.
  • نجحت اختبارات التحميل وإعادة التسمية والحذف والاستعادة والتنزيل والمزامنة.
  • تمت إعادة تشغيل الخادم مرة واحدة للتأكد من أن محرك الأقراص الخارجي يتم تثبيته بشكل موثوق عند بدء التشغيل.
  • لم يتم حذف دليل البيانات القديم حتى يتم اختبار الإعداد الجديد وإجراء نسخ احتياطي منفصل له.

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

اترك تعليقاً

إصلاح أخطاء التشفير التام بين الأطراف (E2EE) في عنصر الويب "فشل في فك تشفير الحدث"

إصلاح أخطاء التشفير التام بين الأطراف (E2EE) في عنصر الويب "فشل في فك تشفير الحدث"

قم باستكشاف أخطاء فك تشفير Element Web وإصلاحها عن طريق التحقق من الجهاز، ونسخ المفاتيح الاحتياطية، ومفاتيح الاسترداد، ومفاتيح الغرف المفقودة - دون المخاطرة بسجل الرسائل.

كيفية إعداد وتفعيل المصادقة الثنائية (2FA) في Nextcloud

كيفية إعداد وتفعيل المصادقة الثنائية (2FA) في Nextcloud

تعرف على كيفية تمكين موفري المصادقة الثنائية في Nextcloud، وفرض المصادقة الثنائية للمستخدمين أو المجموعات، وإعداد عملية الاسترداد، والتحقق من عمليات تسجيل الدخول وتطبيقات العميل.

كيفية تقييد إعادة توجيه البريد الإلكتروني الصادر حسب عنوان IP في زيمبرا

كيفية تقييد إعادة توجيه البريد الإلكتروني الصادر حسب عنوان IP في زيمبرا

قم بتقييد إعادة توجيه البريد الصادر غير المصادق عليه في Zimbra إلى عناوين IP الموثوقة باستخدام zimbraMtaMyNetworks. تعرّف على كيفية فحص قائمة السماح وتحديثها وإعادة تحميلها والتحقق منها بأمان.

إصلاح تحذير حد ذاكرة PHP في Nextcloud

إصلاح تحذير حد ذاكرة PHP في Nextcloud

قم بتعيين قيمة memory_limit لـ PHP إلى 512 ميجابايت على الأقل لـ Nextcloud، وابحث عن تكوين PHP الصحيح للويب، وأعد تشغيل Apache أو PHP-FPM، وتحقق من إزالة التحذير.

كيفية إعداد خادم Matrix Coturn TURN/STUN للمكالمات الصوتية والمرئية

كيفية إعداد خادم Matrix Coturn TURN/STUN للمكالمات الصوتية والمرئية

قم بإعداد Coturn مع Synapse لإجراء مكالمات Matrix WebRTC. قم بتكوين بيانات الاعتماد المشتركة، وNAT، ومنافذ جدار الحماية، وخيارات TLS، وميّز بين TURN القديم وMatrixRTC وLiveKit.

How to Configure Nextcloud Mail App with OAuth2 Authentication

How to Configure Nextcloud Mail App with OAuth2 Authentication

Configure Nextcloud Mail with OAuth2 for Gmail or Microsoft 365, verify IMAP/SMTP access, troubleshoot redirect issues, and know the limits.

كيفية إصلاح تحذير جلسة "تعذر التحقق من الهوية" في Element

كيفية إصلاح تحذير جلسة "تعذر التحقق من الهوية" في Element

قم بإصلاح تحذير جلسة Element "تعذر التحقق من الهوية" عن طريق التحقق باستخدام جهاز موثوق آخر أو مفتاح استرداد، وتعرف على متى تكون إعادة التعيين آمنة.

نقل صناديق بريد كوبانو إلى جرومونيو أو زاماد: اختر المسار الصحيح

نقل صناديق بريد كوبانو إلى جرومونيو أو زاماد: اختر المسار الصحيح

قارن بين عملية ترحيل البيانات إلى Kopano و grommunio و Zammad. تعرّف على بيانات صناديق البريد التي يمكن لكل مسار الاحتفاظ بها، وكيفية تجربة النتائج والتحقق منها، ومتى يكون استخدام IMAP أو الاستيراد المخصص مناسبًا.

كيفية نقل مجلد بيانات Nextcloud بأمان إلى قرص صلب خارجي

كيفية نقل مجلد بيانات Nextcloud بأمان إلى قرص صلب خارجي

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

حل مشكلة عدم تشغيل مهام Cron في Nextcloud تلقائيًا باستخدام systemd

حل مشكلة عدم تشغيل مهام Cron في Nextcloud تلقائيًا باستخدام systemd

قم باستكشاف أخطاء مؤقتات Cron الخاصة بنظام Nextcloud على Ubuntu وإصلاحها عن طريق التحقق من مستخدم الخدمة ومسارات PHP و Nextcloud وتفعيل المؤقت وسجل تشغيل المهمة.