English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

طريقة نقل مجلد home إلى منطقة جديدة دون تغيير بنية الدليل في Linux

عرض المشكلة

خادم التطوير والاختبار للمؤسسة مثبت على أليكسا، وتقوم أليكسا بتقديم نماذج عادة ما تكون واحدة فقط مع مساحة واحدة، من 20G إلى 40G، ثم يتم شراء التخزين وتوصيله إلى مجلد آخر.

و ملف المشاريع المنزلية موجود في مسار الجذر الذي يبلغ 20G. مع زيادة عدد المطورين، يتم ملء مسار الجذر بسرعة.

بما أن هناك بحثًا متعدد المناطق، فإنه يتطلب خطة نقل غير مرئية للجميع لمنزل home.

النظام الأساسي

بعد أن تلقي هذا المهمة، أولاً ما يخطر ببالك هو طريقة bind mount:

mount --bind /some/where /else/where

يمكن تحقيق نقل home بدون إحساس.

يبدو أن البحث باللغة الصينية لم يوضح هذا الأمر بشكل واضح.هذا الأسئلة والأجوبة يوضح ذلك بشكل جيد، يمكن للطلاب الذين يفضلون اللغة الإنجليزية مراجعة ذلك.

بالطبع، يمكنك أيضًا السؤال "الرجل": man mount

الإجراءات المحددة

أولاً، اختر وقتًا عندما يكون هناك قليل من الناس، واستخدم الأمر who لمعرفة من هم الأطفال الذين لا يريدون مغادرة الخادم، واتصل بهم لتنظيفهم جميعًا:

$ who
Frodo  pts/0    2017-04-17 09:07 (xx.xxx.xxx.xx)
Sam   pts/1    2017-04-18 08:45 (xx.xxx.xxx.xx)
Pippin  pts/3    2017-04-18 09:06 (xx.xxx.xxx.xx)
Merry  pts/4    2017-04-18 09:07 (xx.xxx.xxx.xx)

بعد التأكد من عدم وجود أشخاص آخرين، يمكنك البدء في النقل (النسخ). عند استخدام الأمر cp لنسخ، تأكد من إضافة المعلمة -p للحفاظ على إعدادات الأذونات. استخدم الأذونات الجذرية، افتراضًا، أن يكون التمييز للقرص /new_disk:

# cp -p -r /home /new_disk/

لقد تم إنشاء المنزل الجديد، لذا دعونا نمنح المنزل القديم عنوان باب آخر، حتى لا نضيع عنوان الباب الجديد للمنزل الجديد. استخدم mount --bind لتحميل مجلد home الأصلي إلى مجلد جديد:

# mkdir /home_bkp
# mount --bind /home /home_bkp

في هذه الحالة، يمكننا العثور على جميع الملفات القديمة في مجلد /home_bkp. يمكننا الآن منح عنوان الباب الجديد للمنزل الجديد:

# mount --bind /new_disk/home /home

النقل قد تم! يمكنك إبلاغ الأصدقاء بأنهم يمكنهم العمل بفرح. في الواقع، يمكنك عدم إبلاغ الجميع، لأن عملية النقل هذه ليست مرئية للجميع.

بالطبع، بعض الطلاب قد يسألون، المنزل الجديد والمنزل القديم لهما نفس العنوان البابي، كلاهما /home، كيف أعرف إذا كانت عملية النقل ناجحة؟ يمكنك استخدام الأمر df للتأكد:

# cd /home_bkp
# df -h .
Filesystem   Size Used Avail Use% Mounted on
/dev/xvda1    20G  17G 2.1G 90% /
# cd /home
# df -h .
Filesystem   Size Used Avail Use% Mounted on
/dev/xvdb1   296G  42G 240G 15% /new_disk

-h هو human-readable، يمكن أيضًا عدم إضافته، ولكن الأعمدة التي يتم عرضها ستكون "بشريًا غير إنسانيًا".

الأمر السابق، أولاً نذهب إلى المنزل، نقطة الاتصال هي /؛ ثم نذهب إلى المنزل الجديد، نقطة الاتصال هي /new_disk. الآن يمكننا أن نكون مرتاحين.

الإبقاء

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

لتحديث ملف /etc/fstab. افتح هذا الملف، وأضف السطرين التاليين في النهاية:

/home      /home_bkp none bind 0 0
/new_disk/home  /home   none bind 0 0

بهذا، تم إكمال عمل تبديل منطقة home.

ملاحظات بعد

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

مجلد المنزل /home_bkp في هذا النظام بعد تنفيذه لمدة شهر، لا يبدو هناك أي مشكلة، لذا تم إفراغه، لتوفير مساحة.

البيان: محتوى هذا المقال تم جمعه من الإنترنت، ملكية الحقوق لأصحابها، تم جمع المحتوى من قبل المستخدمين على الإنترنت بتحميلهم بأنفسهم، هذا الموقع لا يمتلك الحقوق، لم يتم تعديل المحتوى بشكل إنساني، ولا يتحمل أي مسؤولية قانونية. إذا كنت قد وجدت محتوى يشتبه في حقوق النسخ، فأنت مرحب بك في إرسال بريد إلكتروني إلى: notice#oldtoolbag.com (عند إرسال البريد الإلكتروني، يرجى استبدال '#' ب '@') لتقديم الشكوى، وتقديم الأدلة ذات الصلة، إذا تم التحقق من ذلك، سيتم حذف المحتوى المزعوم فورًا.

أعجبك ذلك