MAHDIAR
30th April 2010, 01:57 AM
در مقایسه با ویندوز که بیشتر کاربران در هر صورت با آن آشنایی دارند، تهیه کردن نسخه پشتیبان در لینوکس دو تفاوت عمده دارد. یکی آنکه در ویندوز برخی از سیستمهای فایلی حتی برای کاربر Administrator هم قفل شدهاند و به طور مستقیم امکان کپیکردن آنها هنگامی که سیستم عامل کنترل کامپیوتر را در دست گرفته وجود ندارد.
بههمین دلیل، برای تهیه نسخه پشتیبان از درایو سیستم عاملدر ویندوز (مثلاً با برنامهای مانند Norton Ghost) باید کامپیوتر را دوبارهراهاندازی کنید و فرآیند بوت و کنترل کامپیوتر را به برنامه پشتیبانگیری بسپارید. البته بهظاهر در نسخههای جدیدتر برخی از نرمافزارهای پشتیبانگیری تحت ویندوز، امکان خواندن تمام فایلها از درون سیستم عامل فراهم شدهاست که به شکلی غیرمستقیم انجاممیگیرد.
در هر حال در لینوکس چنین محدودیتی وجود ندارد و کاربری که سطح دسترسی Root را داشتهباشد، میتواند همه فایلها و شاخههای درون سیستم را بخواند، تغییر دهد یا پاک کند.
درحقیقت اگر کاربر Root باشید، با یک فرمان کوتاه میتوانید سیستم عامل در حال کار را مجبورکنید خودش را پاک کند (البته، قصد ندارم آن فرمان را در اینجا فاش کنم)! بنابراین، برای تهیه کردن نسخه پشتیبان از «همه چیز» در لینوکس، و برای بازگرداندن سیستم عامل به وضعیت پیشین آن، با استفاده از یک نسخه پشتیبان به خارج شدن از محیط جاری سیستم عامل نیازی نیست.
نکته دیگر درباره لینوکس (و سیستمعاملهای یونیکسی دیگر) در مقایسه با ویندوز، ساختار هرمی دایرکتوریها است. در لینوکس یک شاخه Root وجود دارد که هر درایو، سختافزار و شاخه دیگری، در زیرشاخهای از آن قرار دارد. این معماری ساده، در مقایسه با ویندوز که درایوهای مختلف (مانند C و D) هر کدام شاخه جداگانه خود را دارند، بیآن که زیرشاخه یک پوشه یا شاخه کلیتر باشند، کار کردن با فایلها و پوشهها را آسانتر میکند، زیرا با هر فایل یا شاخهای در حال کارکردن باشید، میدانید که آدرس آن در نهایت از شاخه Root شروع میشود (که با علامت / نشان دادهمیشود). اما در موارد کمشماری ممکن است این نوع معماری کمیگیجکننده باشد، از جمله هنگامی که میخواهید (برای نمونه) از تمام فایلهای روی هارددیسکخود نسخه پشتیبان تهیه کنید.
فرض کنید، یک هاردیسک اکسترنال را به کامپیوترخود وصل کردهاید (به طور معمول، با اتصال USB) و میخواهید از تمام فایلها نسخه پشتیبان بگیرید. بهیقین برای شروع باید این قطعه خارجی را به سیستم عامل معرفیکنید. معمولاً سیستمعاملهای امروزی خود این نوع درایوها را میشناسند و آنها را به اصطلاح Mount (نصب) میکنند.
در سیستم عاملهای خانواده لینوکس، برای دسترسی به این گونه درایوها، یک پوشه به درایو نصبشده اختصاص مییابد (که Mount Point خوانده میشود). اما این Mount Point نیز خود زیرشاخهای از Root است، بهعنوانمثال در سیستم اوبونتوی من، هارددیسک اکسترنال در زیرشاخهای به نام media/Buffalo/ قرار میگیرد. حالا اگر بخواهم از شاخه / یا حتی از زیرشاخه media/ نسخه پشتیبان بگیرم، خود درایو اکسترنال هم در زیرشاخهای از شاخه مبدأ قرار دارد و ممکن است یک حلقه نامتناهی از فرآیندهای کپیشدن فایلها ایجاد شود! چاره کار آساناست؛ هنگام اجرای برنامه پشتیبانگیر، شاخه مقصد را از زیرشاخههای مبدأ جدا کنیم. یعنی در مثال بالا، به نرمافزار میگوییم که از همه چیز نسخه پشتیبان بگیر، به جز از شاخه media/Buffalo/ (که شاخه مقصد است).
اما تهیه نسخه پشتیبان و بازیابی سیستم به یک وضعیت قبلی، در لینوکس چگونه انجام میشود؟ درابتدا یک حالت بسیار ساده، اما کامل را مرورکرده، سپس برخی ابزارهای پیشرفتهتر را معرفیکرده و دو نمونه از این ابزارها را بررسی میکنیم. در پایان باز هم یک حالت ساده دیگر را در نظر میگیریم، اما با ابزاری متفاوت و احتمالاً خطرناک!
سادهترین حالت در یک سناریوی تهیه نسخه پشتیبان، آن است که روی یک کامپیوتر سیستم عاملی نصب است (در این مورد، لینوکس) و احیاناً به جز درایو سیستم عامل، درایوهای دیگری هم روی هارددیسک(های) سیستم وجود دارند و میخواهیم از تمام دادههای موجود روی درایو سیستم عامل و درایوهای دیگر، نسخه پشتیبان تهیه کنیم. به زبان ساختار فایلی لینوکس، میتوان گفت میخواهیم از شاخه Root و همه زیرشاخههای آن نسخه پشتیبان تهیه کنیم.
فرض کنیم یک هارد اکسترنال به کامپیوتر وصل کردهایم که در شاخه media/usbdevice/ نصب شدهاست. سادهترین کار ممکن در این حالت این است که در خط فرمان (ترمینال) سیستم از دستوری مانند Tar که برای ساختن و کارکردن با آرشیوهای فشرده فایلی با فرمتهای مختلف به کار میرود، استفاده کنیم. اما چون میخواهیم به تمام سیستمهای فایلی دسترسی داشتهباشیم (از جمله به فایلهایی که فقط کاربر Root اجازه دسترسی به آنها را دارد)، ابتدا باید در خط فرمان به سطح دسترسی Root برویم.
در توزیعهایی مانند OpenSuse یا Fedora این کار را میتوان با تایپکردن دستور su و سپس واردکردن رمزعبور کاربر Root انجام داد. در سیستمهای خانواده اوبونتو کاربر Root به طور پیشفرض غیرفعال است، پس باید به کمک دستور Sudo به سطح دسترسی Root دست یافت. یک راه ساده این است که دستور su را با sudo اجرا کنیم، یعنی در ترمینال تایپ کنیم:
sudo su
سپس رمزعبور کاربر حاضر را وارد کنیم. بعد از وارد شدن به سطح اجازه کاربر su (سرنام Super User)، سادهتر آن است که یکراست به شاخه Root برویم:
cd /
درادامه میخواهیم یک فایلفشرده از همه محتویات هارددیسکبسازیم و آن را روی هارد اکسترنال در شاخه media/usbdevice/ قرار دهیم. بهتر است پیش از انجام این کار مطمئن شویم هیچ درایو اضافهای (جز درایو مقصد) به سیستم متصل نیست. اگر برای نمونه یک DVD در درایو نوری کامپیوتر باشد، محتویات آن نیز در این شیوه در فایل پشتیبان حاضرخواهدبود (که در مرحله استفاده احتمالی از این فایل برای بازآوری سیستم، یک عامل مزاحم خواهدبود)، مگر آن که محل Mount شدن آن را به طور دستی جدا کنیم (به شیوهای که در زیر خواهیمدید). برای این منظور کافی است در خط فرمان تایپ کنیم:
tar cvpzf /media/usbdevice/backup.tgz –exclude=/media/usbdevice /
بههمین دلیل، برای تهیه نسخه پشتیبان از درایو سیستم عاملدر ویندوز (مثلاً با برنامهای مانند Norton Ghost) باید کامپیوتر را دوبارهراهاندازی کنید و فرآیند بوت و کنترل کامپیوتر را به برنامه پشتیبانگیری بسپارید. البته بهظاهر در نسخههای جدیدتر برخی از نرمافزارهای پشتیبانگیری تحت ویندوز، امکان خواندن تمام فایلها از درون سیستم عامل فراهم شدهاست که به شکلی غیرمستقیم انجاممیگیرد.
در هر حال در لینوکس چنین محدودیتی وجود ندارد و کاربری که سطح دسترسی Root را داشتهباشد، میتواند همه فایلها و شاخههای درون سیستم را بخواند، تغییر دهد یا پاک کند.
درحقیقت اگر کاربر Root باشید، با یک فرمان کوتاه میتوانید سیستم عامل در حال کار را مجبورکنید خودش را پاک کند (البته، قصد ندارم آن فرمان را در اینجا فاش کنم)! بنابراین، برای تهیه کردن نسخه پشتیبان از «همه چیز» در لینوکس، و برای بازگرداندن سیستم عامل به وضعیت پیشین آن، با استفاده از یک نسخه پشتیبان به خارج شدن از محیط جاری سیستم عامل نیازی نیست.
نکته دیگر درباره لینوکس (و سیستمعاملهای یونیکسی دیگر) در مقایسه با ویندوز، ساختار هرمی دایرکتوریها است. در لینوکس یک شاخه Root وجود دارد که هر درایو، سختافزار و شاخه دیگری، در زیرشاخهای از آن قرار دارد. این معماری ساده، در مقایسه با ویندوز که درایوهای مختلف (مانند C و D) هر کدام شاخه جداگانه خود را دارند، بیآن که زیرشاخه یک پوشه یا شاخه کلیتر باشند، کار کردن با فایلها و پوشهها را آسانتر میکند، زیرا با هر فایل یا شاخهای در حال کارکردن باشید، میدانید که آدرس آن در نهایت از شاخه Root شروع میشود (که با علامت / نشان دادهمیشود). اما در موارد کمشماری ممکن است این نوع معماری کمیگیجکننده باشد، از جمله هنگامی که میخواهید (برای نمونه) از تمام فایلهای روی هارددیسکخود نسخه پشتیبان تهیه کنید.
فرض کنید، یک هاردیسک اکسترنال را به کامپیوترخود وصل کردهاید (به طور معمول، با اتصال USB) و میخواهید از تمام فایلها نسخه پشتیبان بگیرید. بهیقین برای شروع باید این قطعه خارجی را به سیستم عامل معرفیکنید. معمولاً سیستمعاملهای امروزی خود این نوع درایوها را میشناسند و آنها را به اصطلاح Mount (نصب) میکنند.
در سیستم عاملهای خانواده لینوکس، برای دسترسی به این گونه درایوها، یک پوشه به درایو نصبشده اختصاص مییابد (که Mount Point خوانده میشود). اما این Mount Point نیز خود زیرشاخهای از Root است، بهعنوانمثال در سیستم اوبونتوی من، هارددیسک اکسترنال در زیرشاخهای به نام media/Buffalo/ قرار میگیرد. حالا اگر بخواهم از شاخه / یا حتی از زیرشاخه media/ نسخه پشتیبان بگیرم، خود درایو اکسترنال هم در زیرشاخهای از شاخه مبدأ قرار دارد و ممکن است یک حلقه نامتناهی از فرآیندهای کپیشدن فایلها ایجاد شود! چاره کار آساناست؛ هنگام اجرای برنامه پشتیبانگیر، شاخه مقصد را از زیرشاخههای مبدأ جدا کنیم. یعنی در مثال بالا، به نرمافزار میگوییم که از همه چیز نسخه پشتیبان بگیر، به جز از شاخه media/Buffalo/ (که شاخه مقصد است).
اما تهیه نسخه پشتیبان و بازیابی سیستم به یک وضعیت قبلی، در لینوکس چگونه انجام میشود؟ درابتدا یک حالت بسیار ساده، اما کامل را مرورکرده، سپس برخی ابزارهای پیشرفتهتر را معرفیکرده و دو نمونه از این ابزارها را بررسی میکنیم. در پایان باز هم یک حالت ساده دیگر را در نظر میگیریم، اما با ابزاری متفاوت و احتمالاً خطرناک!
سادهترین حالت در یک سناریوی تهیه نسخه پشتیبان، آن است که روی یک کامپیوتر سیستم عاملی نصب است (در این مورد، لینوکس) و احیاناً به جز درایو سیستم عامل، درایوهای دیگری هم روی هارددیسک(های) سیستم وجود دارند و میخواهیم از تمام دادههای موجود روی درایو سیستم عامل و درایوهای دیگر، نسخه پشتیبان تهیه کنیم. به زبان ساختار فایلی لینوکس، میتوان گفت میخواهیم از شاخه Root و همه زیرشاخههای آن نسخه پشتیبان تهیه کنیم.
فرض کنیم یک هارد اکسترنال به کامپیوتر وصل کردهایم که در شاخه media/usbdevice/ نصب شدهاست. سادهترین کار ممکن در این حالت این است که در خط فرمان (ترمینال) سیستم از دستوری مانند Tar که برای ساختن و کارکردن با آرشیوهای فشرده فایلی با فرمتهای مختلف به کار میرود، استفاده کنیم. اما چون میخواهیم به تمام سیستمهای فایلی دسترسی داشتهباشیم (از جمله به فایلهایی که فقط کاربر Root اجازه دسترسی به آنها را دارد)، ابتدا باید در خط فرمان به سطح دسترسی Root برویم.
در توزیعهایی مانند OpenSuse یا Fedora این کار را میتوان با تایپکردن دستور su و سپس واردکردن رمزعبور کاربر Root انجام داد. در سیستمهای خانواده اوبونتو کاربر Root به طور پیشفرض غیرفعال است، پس باید به کمک دستور Sudo به سطح دسترسی Root دست یافت. یک راه ساده این است که دستور su را با sudo اجرا کنیم، یعنی در ترمینال تایپ کنیم:
sudo su
سپس رمزعبور کاربر حاضر را وارد کنیم. بعد از وارد شدن به سطح اجازه کاربر su (سرنام Super User)، سادهتر آن است که یکراست به شاخه Root برویم:
cd /
درادامه میخواهیم یک فایلفشرده از همه محتویات هارددیسکبسازیم و آن را روی هارد اکسترنال در شاخه media/usbdevice/ قرار دهیم. بهتر است پیش از انجام این کار مطمئن شویم هیچ درایو اضافهای (جز درایو مقصد) به سیستم متصل نیست. اگر برای نمونه یک DVD در درایو نوری کامپیوتر باشد، محتویات آن نیز در این شیوه در فایل پشتیبان حاضرخواهدبود (که در مرحله استفاده احتمالی از این فایل برای بازآوری سیستم، یک عامل مزاحم خواهدبود)، مگر آن که محل Mount شدن آن را به طور دستی جدا کنیم (به شیوهای که در زیر خواهیمدید). برای این منظور کافی است در خط فرمان تایپ کنیم:
tar cvpzf /media/usbdevice/backup.tgz –exclude=/media/usbdevice /