لينوکس يک محيط پايدار و مطمئن است. اما در هر سيستم محاسباتي رخدادهاي غيرقابل پيش بيني، مانند مشکلات و خطاهاي سخت افزاري وجود دارد. داشتن يک سيستم پشتيبان مطمئن از اطلاعات پيکربندي و حياتي سيستم بخشي از طرح راهبر هر سيستمي است. در لينوکس رويکردهاي زيادي براي انجام اين کار وجود دارد. محدوده اين تکنيکها از متدهاي اسکريپت-محور بسيار ساده تا نرم افزارهاي تجاري بسيار دقيق مي باشد.
عمليات پيشتيبان گيري را مي توان در يک سخت افزار شبکه اي راه دور، درايوهاي نواري، و ديگر ابزارهاي قابل انتقال انجام داد. اين عمليات مي تواند مبتني بر فايل يا مبتني بر تصوير (image) باشد. گزينه هاي متعددي براي ترکيب و تطبيق با محيط کاري شما وجود دارد.
راهبرد شما چيست؟

رهيافتهاي متعددي براي گرفتن پشتيبان از سيستم وجود دارد. پشتيباني که شما مي گيريد، به عوامل زيادي بستگي دارد. آيا قصد بازيابي در مواقع بحراني مانند خطاهاي سخت افزاري را دارد؟ آيا مي خواهيد به نحوي آرشيوبندي کنيد که فايلهاي قديمي در صورت نياز بازيابي شوند؟

از چه چيزي مي خواهيد پشتيبان تهيه کنيد؟

طبيعت فايل-محور لينوکس در مواقع پشتيبان گيري و بازيابي داده هاي سيستم يکي از مزيتهاي بزرگ لينوکس است. در يک سيستم ويندوزي، registry مشخصه اي بسيار خاص و سيستمي است. پيکربندي و نصب نرم افزار به سادگي جابه جا کردن فايلها در سيستم نمي باشد. از اين رو، بازيابي در چنين سيستمي نياز به نرم افزارهايي دارد که بتوانند با اين طبيعت مخصوص ويندوز کنار بيايند. داستان در لينوکس با ويندوز فرق مي کند. فايلهاي پيکربندي مبتني بر متن اند، مگر مواقعي که مستقيما با سخت افزار سيستم سرو کار داشته باشيم. رويکرد مدرن براي درايورهاي سخت افزاري اين است که آنها را به عنوان پيمانه هايي (ماژولهايي) که به صورت ديناميک لود (load) مي شوند، داشته باشيم. در نتيجه هسته ها، استقلال بيشتري از سيستم پيدا مي کنند. پشتيبان گيري در لينوکس در حوزه بسته بندي (packaging) و استخراج (unpackaging) فايلها مي باشد. عموما فهرستهايي وجود دارند که ممکن است بخواهيد ازآنها پشتيبان تهيه کنيد:

• etc/
شامل کليه فايلهاي پيکربندي مرکزي شما مي باشد. اين فهرست شامل پيکربنديهاي شبکه، اسامي سيستم، قواعد فايروال، کاربران و گروه ها و ديگر موارد کلي سيستم است.

• var/
شامل اطلاعاتي است که توسط سرويسهاي سيستم از قبيل پيکربنديهاي DNS، DHCP، فايلهاي mail spool، فايلهاي کارساز (سرور) HTTP، پيکربنديهاي نمونه db2 و ... مي باشد.

• home/
مشتمل بر کليه فهرستهاي خانگي کاربران سيستم مي باشد. اين فهرست تنظيمات شخصي، فايلهاي دانلود شده و ساير اطلاعاتي است که کاربران نمي خواهند آنها را از دست بدهند.

• root/
اينجا فهرست خانگي کاربر ريشه است.

• opt/
محلي است که نرم افزارهاي غير سيستمي زيادي در اينجا نصب خواهد شد. نرم افزارهاي IBM در اينجا قرار مي گيرند. OpenOffice، JDKs و ساير نرم افزارها نيز به طور پيش فرض در اينجا نصب مي شوند.
فهرستهايي نيز وجود دارند که شايد قصد گرفتن پشتيبان از آنها را نداشته باشيد:

• proc/
از اين فهرست اصلا نبايد پشتيباني گرفته شود. proc/ يک سيستم فايل read-file نيست بلکه يک ديد مجازي از هسته اجرايي و محيط مي دهد. اين فهرست شامل فايلهاي همچون proc/kcore/ است که ديدي مجازي از تمام حافظه اجرايي مي دهد. پشتيبان گيري از اين فهرست، صرفا اتلاف منابع است.

• dev/
شامل فايلهاي نمايشي از سخت افزار و ابزارهاي سيستمي شما است. اگر قصد بازيابي در يک سيستم خالي را داريد، مي توانيد از dev/ پشتيبان بگيريد. اما اگر مي خواهيد داده هاي بازيابي شده را در يک سيستم که از قبل لينوکس در آن نصب شده است، بريزيد، گرفتن پشتيبان از dev/ ضرورتي ندارد.

ساير فهرستها، شامل فايلهاي سيستمي و بسته هاي نصب شده است. در يک محيط کارساز، حجم زيادي از اين اطلاعات سفارشي نمي شوند. بسياري از سفارشي سازيها در فهرستهاي home/ و etc/ انجام مي گيرد. اما براي اطمينان اگر بخواهيد مي توانيد از آنها نيز پشتيباني تهيه کنيد.

ابزارهاي پشتيبان گيري
همانطور که قبلا گفته شد، پشتيبانهاي لينوکس به شکل بسته بندي و استخراج فايلها مي باشد. اين ويژگي به شما امکان مي دهد که از ابزارهاي کمکي سيسنمي موجود و اسکريپت کردن آنها براي عمليات پشتيبان گيري و بازيابي استفاده نماييد.

اسکريپت back up را با استفاده از دستور cron مي توان خودکار نمود. اين کار، امکان کنترل وقايع زمان بندي شده در لينوکس را مي دهد.

tar
tar يک دستور قديمي يونيکس است که به لينوکس نيز منتقل شده است. اين کلمه مخفف tape archive مي باشد و در اصل براي بسته بندي فايلها بر روي نوار طراحي شده است. کل يک فهرست را مي توان با tar بسته بندي نمود. اين ويژگي، امکان مناسبي براي پشتيبان گيري فراهم مي آورد. فايلهاي پشتيبان و آرشيو شده را مي توان به فهرستها و محلهاي ديگري انتقال داد. tar يک دستور مستقل از سيستم است. اين دستور را مي توان بر روي ext2، ext3، jfs، Reiser و ساير فايل سيستمها به کار برد. استفاده از tar شبيه استفاده به کارگيري يک ابزار کمکي فايل مثل PKZip است. شما بايد براي آن يک مقصد که يک فايل يا يک سخت افزار است تعيين کنيد و سپس نام فايل/فايلهايي که مي خواهيد بسته بندي کنيد را ذکر کنيد.

همچنين مي توانيد آرشيوها را با انواع استاندارد فشرده سازي، فشرده نماييد. براي فشرده سازي يا استخراج فايلها از طريق bzip2، از tar -z استفاده کنيد.

براي گرفتن پشتيبان از کل فايل سيستم با دستور tar، در يک درايو نوار اسکازي، با استثنا کردن فهرست proc/ دستور زير را خواهيم داشت:

tar -cpf /dev/st0 / --exclude=/proc

در مثال فوق، سوييچ c-، به ساخته شدن يک آرشيو اشاره مي کند. سوييچ p-، معرف اين است که ما مي خواهيم حقوق دسترسي فايل را که براي يک پشتيبان گيري عالي، امري حياتي است، حفظ کنيم. سوييچ f- به نام فايل براي آرشيو اشاره دارد. در اين حالت، ما از ابزار نوار خام dev/st0/ استفاده مي کنيم. علامت '/'، بيانگر عمليات پشتيبان گيري است. از آنجايي که قصد داريم از کل فايل سيستم پشتيبان بگيريم، root را براي اين کار مشخص مي کنيم. tar هنگامي که به يک فهرست (ختم به يک /) اشاره دارد به طور خودکار به صورت بازگشتي عمل مي کند. در نهايت از آنجا که فهرست proc/ حاوي اطلاعاتي ضروري نيست، آن را استثنا مي کنيم. اگر پشتيبان در يک نوار واحد جا نگرفت، سوييچ M- را براي در نظر گرفتن چند رسانه ذخيره سازي (multi-voloum) اضافه مي کنيم. براي بازيابي يک فايل/فايلها، دستور tar را با سوييچ استخراج x- به کار مي گيريم:

tar -xpf /dev/st0 -C

سوييچ f- به فايلهاي ما اشاره مي کند و p- براي حفظ دسترسيهاست. سوييچ x- بيان کننده استخراج آرشيو است . c- تعيين مي کند که ما مي خواهيم عمليات بازيابي را در '/' انجام دهيم. tar به طور طبيعي، بازيابي را در همان فهرستي که دستور اجرا مي شود، انجام مي دهد. سوييچ C- ديگر فهرست فعلي را به صورت پيشفرض در نظر نمي گيرد. دو دستور tar ديگر که احتمالا مورد استفاده قرار مي گيرند، با سوييچهاي d- و t- همراه است. سوييچ t- محتويات يک آرشيو را ليست مي کند و d- محتويات آرشيو را با فايلهاي فعلي روي سيستم مقايسه مي کند.

براي سهولت در عمليات ويرايش، مي توانيد فايلها و فهرستهايي که مي خواهيد آرشيو شوند را در يک فايل متني بريزيد و با سوييچ T- به آن ارجاع دهيد. با اين قابليت مي توان ساير فهرستها را در خط فرمان نيز با هم ترکيب نمود. دستور زير از کليه فايلها و فهرستهاي موجود در MyFile، فهرست root و کليه فايلهاي ايزو در فهرست tmp/ پشتيبان مي گيرد.

tar -cpf /dev/st0 -T MyFiles /root /tmp/*.iso

فهرست فايل فوق، يک فايل متني ساده است که فايلها و فهرستهايي را ليست مي کند. نمونه آن را در ادامه مشاهده مي کنيد:

/etc
/var
/home
/usr/local
/opt

دقت داشته باشيد که دستور tar -T کاراکترهاي wildcard را نمي پذيرد. فايلها بايد صريحا قيد شوند. مثال فوق يک روش براي ارجاع به فايلها را به طور جداگانه نشان مي دهد. شما همچنين مي توانيد با اجراي يک اسکريپت در سيستم، جستجويي انجام داده و سپس يک ليست بسازيد. در اينجا مثالي از اين اسکريپت را مي بينيد:

#!/bin/sh
cat MyFiles > TempList
find /usr/share -iname *.png >> TempList
find /tmp -iname *.iso >> TempList
tar -cpzMf /dev/st0 -T TempList

اسکريپت فوق ابتدا تمامي فايلهاي موجود را از MyFile به TempList کپي مي کند. سپس دو دستور find براي جستجو در فايل سيسنم و پيدا کردن تطبيقهايي با الگوي مورد نظر انجام داده و نتيجه را به TempList مي افزايد. در نهايت نيز دستور tar به سوييچهايي که قبلا شرح آنها داده شده است، اجرا مي شود.
براي بازيابي فايلها نيز مي توان اسکريپتهايي نوشت. البته عمليات بازيابي اغلب به طور دستي انجام مي گيرد. همانطور که ذکر شد،براي استخراج فايلها، سوييچ x- جايگزين سوييچ c- خواهد شد. براي روبرداري و بازيابي داده ها از سوييچها نيز مي توانيد استفاده کنيد.

روبرداري (dump) و بازيابي (restore)
عملکرد dump مشابه tar است. در راهنماي دستور dump آمده است: dump فايلهاي يک فايل سيستم ext2 را تست کرده و تعيين مي کند که کدام فايلها به پشتيبان گيري نياز دارند. اين فايلها در ديسک، نوار يا هر رسانه ذخيره سازي ديگري کپي مي شوند. يک روبرداري که حجم بيشتري نسبت به رسانه ذخيره سازي داشته باشد، در چندين ابزار مربوط، کپي مي گردد.

برنامه همکار dump ، دستور restore مي باشد که براي بازيابي فايلها از يک تصوير روبرداري شده به کار مي رود. عملکرد دستور restore عکس dump است.

هر دو دستور dump و restore را مي توان در شبکه نيز اجرا نمود. بنابراين مي توان از راه دور، عمليات بازيابي و گرفتن پشتيبان از داده ها را انجام داد. هر دو دستور با درايوهاي نواري کار مي کنند و هر چند که هر دو محدود به فايل سيستمهاي ext2 و ext3 مي باشند. اگر با فايل سيستمهاي ديگري مثل jfs، Reiser و ... کار مي کنيد، از ابزار کمکي ديگري مانند tar استفاده کنيد.

عمليات پشتيبان گيري با استفاده از dump
گرفتن پشتيبان با dump خيلي ساده و سرراست است. دستور زير يک پشتيبان کامل از لينوکس با فايل سيستمهاي ext2 و ext3 در يک ابزار نوار اسکازي مي گيرد:

dump 0f /dev/nst0 /
boot dump 0f /dev/nst0 /

در اين مثال، سيستم، دو فايل سيستم دارد: يکي براي boot/ و ديگري براي '/'. در هنگام گرفتن پشتيبان به اين فايل سيستمها بايد به طور جداگانه ارجاع داد. dev/nst0/ به اولين نوار اسکازي اشاره مي کند. ويژگي جالب dump، قابليت پشتيبان گيري افزايشي built-in آن مي باشد. در مثال فوق، ۰ بيانگر سطح صفر يا سطح پايه مي باشد که يک پشتيبان گيري کامل از سيستمي است که مي خواهدي به صورت دوره اي و متناوب، کل آن را داشته باشيد.

در پشتيبانهاي ترتيبي از شماره هاي ديگري نيز (۱-۹) به جاي 0 مي توانيد استفاده کنيد. سطح ۱ کليه فايلهايي را که از زمان پشتيبان گيري سطح صفر تغيير کرده اند، ذخيره مي کند و ...

همين عمليات را با tar، و به وسيله اسکريپت نويسي مي توان انجام داد، اما به مبدل اسکريپتي نياز داريم که مکانيزمي براي تعيين آخرين تغييرات در آخرين پشتيبانها داشته باشد. در دستور dump، با نوشتن يک فايل به روز رساني (etc/dumpupdates/) در انجام عمليات پشتيباني مکانيزم خاص خودش را دارد. فايل به روز رساني در هر بار اجراي پشتيبان گيري سطح صفر، ريست مي شود.

بازيابي با دستور restore
براي بازيابي اطلاعات ذخيره شده با dump، دستور restore استفاده مي شود. مشابه tar، دستور dump قابليت ليست کردن (t-) و مقايسه آرشيوها را با فايلهاي فعلي (C-) دارد. در حين کار با dump و بازيابي داده ها بايد دقت داشته باشيد. دو رويکرد کاملا متفاوت وجود دارد و شما بايد عمليات درستي براي گرفتن نتايج قابل پيش بيني انجام دهيد.

باز سازي- Rebuild -r
دو روش متفاوت براي بازيابي فايلها وجود دارد. براي بازسازي يک فايل سيستم از سوييچ r- استفاده کنيد. Rebuild براي کار با فايل سيستمهاي خالي طراحي شده است و وضعيت ذخيره شده قبلي را بازسازي مي کند. قبل از اجراي Rebuild بايد فايل سيستم را ايجاد، فرمت و سوار (mount) کرده باشيد. اين دستور نبايد روي فايل سيستمي که حاوي يک سري فايل است، اجرا گردد.
مثالي از عمليات بازسازي کامل را مي بينيد:

restore -rf /dev/nst0

دستور فوق بايد براي هر فايل سيستمي که بازيابي مي شود، اجرا گردد.
اين فرايند در صورت لزوم براي افزودن پشتيبانهاي افزايشي تکرار خواهد شد.

استخراج- Extract -x

اگر لازم است که با خود فايلها و نه کل فايل سيستم کار کنيد، بايد از سوييچ x- براي استخراج آنها استفاده کنيد. براي مثال براي استخراج فقط فهرست etc/ از نوار پشتيبان، از دستور زير استفاده کنيد:

restore -xf /dev/nst0 /etc

بازيابي تعاملي (i-)
قابليت ديگر restore مود تعاملي آن است. دستور زير:

restore -if /dev/nst0
شما را در يک پوسته (shell) تعاملي قرار خواهد داد و گزينه هايي که در آرشيو هستند را نشان مي دهد. با تايپ "help” ليستي از دستورات را خواهد داشت. سپس مي توانيد گزينه هاي دلخواه براي استخراج را جستجو و انتخاب نماييد.
دقت داشته باشيد که کليه فايلهاي استخراج شده در فهرست جاري قرار مي گيرند.

dump در برابر tar

هر دو دستور dump و tar مشخصات خاص خود را دارند. هر دو مزايا و معايبي نيز دارند. اگر هر چيزي را اجرا کنيد و فايل سيستم ext2 و ext3 باشد، dump براي شما کارگر نخواهد بود. هر چند که اين دستور قابليتهاي اسکريپتي عالي و مودهاي تعاملي دارد که براي بازيابي داده ها کمک فراواني مي کند.

بسياري از افراد از tar استفاده مي کنند. زيرا به اسکريپت نويسي براي سطوح کنترلي اضافي علاقه مند اند و همچنين اين دستور در ابزارهاي چند سکويي کار مي کند

ساير ابزارها
به طور کلي هر برنامه اي که بتواند فايلها را کپي نمايد مي توان از آن براي عمليات پشتيبان گيري در لينوکس استفاده کرد. منابعي براي استفاده از cpio و dd نيز در همين زمينه وجود دارد.

محصولات پشتيبان گيري تجاري
چندين محصول تجاري براي گرفتن پشتيبان در لينوکس وجود دارد. اين محصولات عموما، يک واسط راحت و يک سيستم اعلان و گزارش دارند. مزيت عمده اين محصولات اين است که شما مي توانيد راهبرد خود را قبل از شروع عمليات، جهت مديريت بهتر پشتيبان گيري، به طور دقيق طرح ريزي کنيد.
هزينه محصولات تجاري در مقابل تبعات از دست دادن داده ها مناسب و ارزان مي باشد.

Tivoli Storage Manager- TSM

در حال حاضر بهترين محصول تجاري براي گرفتن پشتيبان از داده ها در لينوکس TSM مي باشد. اين برنامه روي سکوهاي مختلفي اجرا مي شود. گرفتن پشتيبان از داده ها را مي توان زمانبندي نمود و به صورت دستي از طريق واسط کارخواه (کلاينت) TSM يا از راه دور از طريق يک واسط مبتني بر وب انجام داد.


شکل ۱- منوي مديريت TSM

حال بازيابي و گرفتن پشتيبان از طريق ابزار راه دور انجام مي گيرد.


شکل ۲- واسط TSM

در آخر يادآوري مي کنيم که اولين گام براي يک پشتيبان خوب ، داشتن يک برنامه خوب است.