السلام عليكم ورحمة الله وبركاته ...
طبعاً
كما هو معروف الـ NFS
هو عبارة عن Network
File System ومن الإسم واضح هو
لمشاركة الملفات على الشبكة. كيف
يتم ذلك في بيئة Ubuntu ؟ الأمر
جداً بسيط وسهل، كل ما عليك عمله هو متابعة
هذه التدوينة فقط ... طيب
ما هي المتطلبات لذلك؟ المتطلبات هي
التالي:
nfs-kernel-server
- هذا هو السيرفر الخاص بالـ
NFS
nfs-common
- هذه الحزمة تتظمن بعض البرامج
الخاصة بالـ NFS
portmap
- هذه هي خدمة معينة لربط الخدمات
التي تستعمل rpc من
خلال port معيين
حيث تقوم بإعطاء port
معيين لخدمة معينة، ومن دون
هذه الخدمة لن يعمل الـ NFS
الآن
لنقم بالتنصيب:
apt-get install nfs-kernel-server portmap nfs-common
الآن
الملف الخاص بالإعدادت حق الـ NFS
هو /etc/exports حيث
يحتوي على الإعدادات الخاصة بالمجلدات
التي تريد عمل مشاركة Share
لها على الشبكة ... طيب
الحين لنفرض لدي المجلد التالي:
/home/user/Movies
وأريد
أن أقوم بمشاركته للمستخدمين الموجودين
على الشبكة المحلية فقط ... ماذا
سنعمل؟ الجواب تابع معي:
أول
حاجة سنقوم بها هي:
نحرر
ملف الإعدادات الخاص بالخدمة NFS
من خلال الأمر التالي:
vi /etc/exports
بعد ذلك نقوم بوضع السطر هذا:
/home/user/Movies 192.168.0.0/24(rw,sync)
لنوضح
هنا ماذا يعني كل شيء في هذا السطر ...
لنأخذ كل شيء على
حدى:
/home/user/Movies هذا
هو المجلد المراد عمل مشاركة له
192.168.0.0/24
هذا يمثل الأي بي حق الشبكة
الخاصة بي، وضعي للـ /24 تعني
إني حددت المشاركة ستكون لكل من يقع ما
بين 192.168.0.0 و 192.168.0.255
rw
تعني السماح للقراءة read
والكتابة write
على المجلد الذي قمنا بعمل
مشاركة له
sync تعني
إنها ستقوم بعمل الإتصال ونقل البيانات
يتم بشكل تزامني Synchronous
مثال
آخر:
/home/user/Movies rul3z(ro,sync) n3m3siz(rw,sync)
هنا
قمت بعمل مشاركة لنفس المجلد ولكن ليس
الى شبكة معينة ولكن الى Hostname
معيين. هذه
الحالة تتطلب من السيرفر NFS
قادر على التعرف على الـ
Hostnames الموجودة
على الشبكة وإﻻ لن تعمل ﻷنه لن يتعرف
ماذا يعني rul3z أو
n3m3siz ...
الآن
قم بحفظ الملف وغلقه وبعدها قم بتنفيذ
التالي:
/etc/init.d/nfs-kernel-server start
لو أخبرك بإن السيرفر يعمل من الأصل قم بتنفيذ التالي:
/etc/init.d/nfs-kernel-server restart
الآن
أصبح السيرفر حق الـ NFS
يعمل وكل شي تمام ... باقي
نعمل تجربة هل يعمل أم ﻻ.
الآن
لنقم على جهاز آخر بعمل التالي لغرض
التجربة:
mkdir /mnt/Movies
حيث سنقوم بربط المجلد الموجود على الشبكة مع المجلد الموجود على الجهاز الحالي من خلال المجلد الذي عملناه في الأعلى. الآن لتنفيذ عملية الربط قم بالتالي:
mount server-name/ip:/home/user/Movies /mnt/Movies
كل
ما عليك فعله هو تغيير server-name
بإسم السيرفر أي الـ Hostname
أو تغيير الـ server-ip
بالأي بي حق السيرفر لكي يعمل
الأمر أعلاه. طيب الحين
كيف أصل للملفات؟ بسيطة جداً نحن ربطنا
المجلد المشترك على الشبكة بنظام الملفات
التي لدينا من خلال الملجد /mnt/Moivies
ولهذا أكيد الوصول لهم من
خلاله:
cd /mnt/Movies
طيب
يا B!n@ry لنفرض
أنا ﻻ أعرف ما هي المجلدات التي تم عمل
مشاركة لها على السيرفر كيف أعرف ذلك ؟
قم بالتالي:
showmount -a server-name/ip
كل
ما عليك فعله هو تغيير server-name
بإسم السيرفر أي الـ Hostname
أو تغيير الـ server-ip
بالأي بي حق السيرفر لكي يعمل
الأمر أعلاه.
ألف مبروك
الحين جهازك يعمل كـ NFS
Server ... لمزيد من المعلومات؟
دائماً الـ man pages
فيها الكثير، والإستفسارات
هنا محل ترحيب مستمر ...
خالص
الود والتقدير للجميع ...
أخوكم
B!n@ry ...