لینوکس و تاثیر آن در دنیای سیستم عامل ها

بررسی Hard Link در لینوکس

همانطور که می دانید فایل سیستم مجموعه بسیار زیادی از inod ها می باشد.به طور کلی از آنجایی که همه چیز در لینوکس به صورت یک فایل است هر فایل دارای یک inod number یکتا می باشد. در inode هر فایل اطلاعات بسیار زیادی نگه داری می شود:

۱.مسیر اصلی فایل شامل base name و dirname هر فایل

۲.تعداد لینک های هر فایل

۳.آخرین تغییرات در فایل

۴.تاریخ اخرین دسترسی به فایل

۵.سطح دسترسی های مرتبط با این فایل (permission )

پیشنهاد ایران هاست برای وب سایت های لینوکس، استفاده از سرورهای ابری با سرعت و Uptime بالاست.

همین امروز سفارش دهید

و…

در حقیقت فایل سیستم شامل میلیون ها inode می باشد که با ایجاد هر فایل در لینوکس این فایل به یکی از این شماره ها(inode ) لینک می شود.در صورتی که بخواهیم یک فایل با دو نام متفاوت داشته باشیم به گونه ای که فایل مورد نظر از دو مسیر قابل دسترسی باشد از مفهومی بنام hard link استفاده می شود

یک سناریو عملی را بررسی خواهیم کرد.برای مثال در فولدری بنام folder1 اقدام به ایجاد یک فایل بنام orginalfile می نماییم.با دستور nano در این فایل عبارت هایی را وارد و ذخیره می کنیم

Mkdir folder1

Cd folder1

Touch orginalfile

Nano orginalfile

حال به مسیر دیگری می رویم و یک فولدر دیگری بنام folder2 ایجاد می کنیم  و داخل آن با دستور ln که برای ایجاد هارد لینک ها می باشد فایل جدیدی بنام linkfile را به orginalfile در مسیر قبلی ساخته شده لینک می کنیم

Cd /

Mkdir folder2

Cd folder2

Ln /folder1/orginalfile  /folder2/linkfile

به همین راحتی توانستیم اقدام به ساخت یک لینک از نوع Hard نماییم.با گرفتن لیست از هر دوفایل مورد نظر از طریق دستور زیر میشخص می شود که inode number هر دو فایل یکی است.این بدان معنی و مفهوم است که از دید سیستم این دو فایل در حقیقت یک فایل هستند اما با دو نام متفاوت.هر تغییری که در فایل orginalfile انچام شود این تغییر در فایل linkfile نیز اعمال خواهد شد . بالعکس.

در صورتی که تاریخ آخرین به روز رسانی هر کدام از فایل ها تغییر کند این تغییر بر دیگری نیز اعمال خواهد شد. در صورتی که permission مربوط به هرکدام از فایل ها تغییر کند سطح دسترسی فایل دیگر نیز به همان صورت تغییر خواهد یافت.نتجه گیری نهایی اینکه هر تغییری که در یکی از فایل ها انجام شود آن تغییر در فایل دوم نیز اعمال خواهد شد.

در این نوع از لینک دهی در صورتی که فایل اصلی (اورجینال) اولیه حذف گردد می توانید از طریق مسیر دوم مجدد به فایل دسترسی داشته باشید در حقیقت می توان به عنوان یک mirror و یا بک آپ فایل در نظر گرفت.اما در نظر داشته باشید این نوع لینک دهی دارای محدویت های اساسی می باشد که در زیر به بررسی این محدودیت ها می پردازیم.

۱.در صورتی که فایل اصلی در یک پارتیشن دیگری باشد و شما بخواهید hardlink این فایل را در پارتیشن مجزای دیگری داشته باشید امکان پذیر نمی باشد.علت این مورد به دلیل تفاوت file system های مختص به هر پارتیشن می باشد.پس نتیجه گیری ما از این محدودیت این است که hard link قابلیت cross partitioning نداشته و هر دو فایل یعنی فایل اصلی و hardlink ان حتما بایستی داخل یک پارتیشن باشند

۲.hardlink فقط برروی فایل اعمال می شود و شما نمی توانید این سناریو را در دایرکتوری ها نیز داشته باشید.اساسا یک دایرکتوری با دو نام متفاوت در directory tree لینوکس نمی توان داشت .پس نتیجه گیری مهم این شد که ما تنها و فقط از file ها می توانیم hardlink ایجاد کنیم

 

  • can’t cross the file system boundaries
  • can’t link directories
  • has the same inodes number and permissions of original file
  • permissions will be updated if we change the permissions of source file
  • has the actual contents of original file, so that you still can view the contents, even if the original file moved or removed

 

در ادامه یک مثال و نمونه عملی از hard link را بررسی خواهیم کرد

echo “Welcome to OSTechNix” >source.file

cat source.file

Welcome to OSTechNix

 

ln source.file hardlink.file

cat hardlink.file

ls –lia

Sample output:

total 16

۱۵۷۴۵۳۲۶ drwxr-xr-x 2 sk users 4096 Dec 13 15:22 .

۱۵۷۲۸۶۴۲ drwx—— 49 sk users 4096 Dec 13 14:50 ..

۱۵۷۴۵۵۵۵ -rw-r–r– 2 sk users 21 Dec 13 15:20 hardlink.file

۱۵۷۴۵۵۵۵ -rw-r–r– 2 sk users 21 Dec 13 15:20 source.file

rm source.file

cat hardlink.file

 

لینک ترجمه مرجع:

Explaining Soft Link And Hard Link In Linux With Examples

مولف: مصطفی بنایی

 

 

 

 

با کارت بانکی باشگاه ایران هاست پولتان به حسابتان باز می گردد.

همین حالا رایگان عضو شوید

برچسب ها

اشکان نصیری

مدیر سرور در ایران هاست با +۵ سال سابقه در صنعت میزبانی وب و کارشناسی ارشد MBA

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا
بستن
بستن