نحوه ی گرفتن backup
ميخواهيم يک فايل A=100k را کپيکنيم و از آن back up بگيريم.
يک فايل backup از سه قسمت تشکيل شده است:
Header file A Trailer
CRC
Header : شناسنامه ي فايل
A : فايل
Trailer : براي کنترل در مبدا مي باشد و اگر فايل A يک بايتش هم دست بخورد CRC به هم مي ريزد.
به عنوان مثال به ما ميگويند يک فايل k 122 را ميخواهيم از شما که به شيراز بفرستيد. شما ميتوانيد اين فايل را روي فلاپيي ا
فلش کپي کنيد. يک راه ديگر هم داريم که آن backup است.
copyback up
فرمان copy به شناسنامه يداده کاري ندارد و اگر در حين انتقال خراب هم شود error اي نميدهد و ادامه مي دهد. ممکن است
permission ها و صاحب اصلي فايل عوض شود ولي back up کاري که ميکند اينست که اوّل يک header ميگذارد بعد A را
ميگذارد و سپس يک trailer هم ميگذارد يعنيفرمان backup کاري که ميکند شناسنامهي فايل را هم ميبرد.
دلايل – backup گيري:
1( خرابي و معيوب شدن تجهيزا به هر دليلي
0( کم توجهي مسئول نگهداري اطلاعا
3( از بين رفتن اطلاعا به دليل حملهي خودي و غيرخودي
1( انتقال اطلاعا از يک کامپيوتر به کامپيوتر ديگر
5( اراله اطلاعا به سازمانهاي زيرربط و محاکم قضايي
حالا همه اين فرمان را در home directory خودتان بزنيد )فايل namef همان فايلي است که براي تمرين ه ا ي قبل ي کپ ي
کرديم و فرقي نمي کند مي توانيد به جاي namef هر فايل ديگري را در نرر بگيريد
کاري که ميکند اينس ت ک ه در header
شناسنامهي فايل را ميگذارد. و با يک الگوريتمي ,backup يک عددي را در trailer قرار ميدهد که نشاندهنده آن فايل اس ت.
در مبدأ کنترل ميشود و اگر يک بايتش دست بخورد و ت يير کند اين عدد ديگر درست نيست و backup نادرست است و ب درد
نميخورد. ولي کپي فقط as is copy ميکند و کاري ندارد اگر قسمتهايي از فايل هم خراب باش د و شناس نامه ي فاي ل را ه م
نميبرد.
فروش دامنه
پس trailer را backup ميگذارد تا کنترل شود در مبدأ و اگر يک بايت آن دست بخورد CRC به هم ميخورد.
ما دو روش back up گيري را بررسي ميکنيم و روش سوم را به عهده ي خودتان مي گذاريم:
)1 tar
)0 cpio
)3 dump
tar
اکثر سورسهاي لينوکس با اين فرمت هستند. Backup گيري قانون و استراتژي دارديعني اينکه در چه ساعتي backup بگيريم
و کجا بگذاريم و بايد تاريخ و ساعت backup گيري را روي آن بنويسيم و با توجه به حساسيت فايل backup گيري شده آن را
در جايي امن و مطمئن قرار دهيم.
حالا فرمان روبهرو را بزنيد. ميبينيم که دعوا ميکند و ميگويد بايد option را مشخص ميکردي.
[N.pardis@Lpi1~]$ tar
حالا فرمان روبهرو را ميزنيم که باز هم دعوا ميکند و ميگويد به من نگفتي که back up را کجا create کنيم.
[N.pardis@Lpi1~]$ tar c
فرمان tar يکي از فرمانهايي است که option هاي آن نيازي به ندارند. تعداد محدودي از اين فرمانها داريم. حالا فرمان روبهرو را –
ميزنيم:
[N.pardis@Lpi1~]$ tar cf all.
c : create
all : روي اين فايل back up درست کن.
. ) نقطه ( يعني از current Directory اش back up بگيرد.
اعتراضي ميکند و ميگويد من فايل all را که خودش back up است از خودش نميتوانم back up بگيرم.
وقتيفرمان روبهرو را ميزنيد به شما ميگويد که فايل all استانداردياز جنس posix است و archive اي از جنس Tar .
[N.pardis@Lpi1~]$ file all
شما وقتي لاگين ميکنيد تعدادي فايل برايتان ساخته ميشود که ما الآن از آنها back up گرفتيم وقتي ls –l بزنيم همه را مي-
بينيم. all که فايل backup است و از دايرکتوري جاري گرفته شد حجمش از کل فايلها بيشتر است. چرا؟
به دليل اينکه در backup تعدادي header و trailer اضافه کردهايم. حالا اگر در فرماني که زديم يک آپشن ديگر هم به ن ام v
که مخفّف verbose ميباشد اضافه کنيم که به معني با خود زمزمه کردن ميباشد.
[N.pardis@Lpi1~]$ tar cvf all.
حالا اگر اينتر بزنيم ميبينيم که يک چيزهايي را که تا الآن نميگفت را گفت و verbose مُد شد و فايلهاي نقطهدار را که تا الآن
نميديديد حالا ميبينيد و از آنها backup گرفته.
حالا اگر به جاي all ، فلاپييا flash مينوش ت يد فاي ل را م يتوانس ت يد م ثلاً ب ه ش يراز بفرس ت يد. و وقت ي ب ه مقص د رس يد ب ه
راحتي recovery ميکنيد و به راحتياز آن فايل استفاده ميکنيد. در backup گيري بايد خيلي دقّت کنيم چون ممکن است ب ه
درستي back up نگيريم و بعداً برنگردد. يک آپشن مهم ديگر برايفرمان tar آپشن t است: t مخفّف table ميباشد. اي ن فرم ان
چک ميکند backup ما خوب است يا نه؟ اگر backup خراب باشد يا مشکلي داشته باشد براي ما يک پي ام مينويسد.
[N.pardis@Lpi1~]$ tar tf all
اگر يک v هم در وسط اين آپشن بگذاريم خروجي خيلي تميزي به ما ميدهد. پس backup ک ه گ رفت يم ب ا ا ي ن فرم ان آن را
تست ميکنيم. f يعني فايلي که جلوي آن نوشتيم وقتيفرمان روبهرو ميزنيم اعتراض ميکند و ميگويد کهبه نرر نميآيد که اين
فايل يک back up باشد.
[N.pardis@Lpi1~]$ tar tvf namef چرا ما در بکآپگيري Change Directory ميکنيم؟ Absolute Path يعني چه؟
چون اگر ما backup را با فرمان روبهرو tar cvf All/home/pardis/ بگيريم در مقصد که ميخ واه يم از backup اس تفاده
کنيم و آن را برگردانيم امکان دارد فايلي به نام pardis در همان مسير وجود داشته باشد و برود به جاي آنه ا ق رار گ ي رد و آن
فايل را از بين ببرد. به اين ميگويند Absolute path که با / شروع ميشود. و اگر با / شروع نشود به آن م يگوين د relative .
مثلاً اگر بزنيد /bin/date ميشود Absolute و اگر date خالي بزنيد بايد برود بگردد و relative ميشود.
در بکآپگيري اگر از Absolute path خواستيم بکآپ بگيريم اش کال ي ن دارد ب ه ش رط ا ينک ه س ورس و target را ب دان يم.
absolute path خيلي سريعتر است. اجراي فرمانها در absolute path سريعتر است بدليل اينک ه shell جس تجو نم ي کن د
بهتر است. چون به shell ميگوييد برو و از اينجا اجرا کن و اگر خالي بزنيد بايد بگردد.
آپشن برگرداندن فايل از back up:x
c : create
v : verbase
f : File
فايل namef را سهواً پاک کنيد و از backup برگردانيد؟
ابتدا با فرمان rm فايل را پاک ميکنيم.
اگر namef خالي بزنيد ميگويد اين فايل وجود ندارد. دليل آن چيست؟
[N.pardis@Lpi1~]$ rm namef
[N.pardis@Lpi1~]$ tar xvf all ./namef
حال اگر فرمان روبهرو را بزنيم حجم فايل را ميبينيم
[N.pardis@Lpi1~]$ ls -l all
250m
backup ميتواند فايل را فشرده کند يعني zip کند. حالا ميخواهيم فايل را zip کنيم و backup بگيريم .آپشن z ک ه مخفّ ف
zip است اين کار را براي ما انجام ميدهد.
[N.pardis@Lpi1~]$ rm all
[N.pardis@Lpi1~]$ tar cvfz all.
[N.pardis@Lpi1~]$ ls –l all
حال آپشن z را بر ميداريم و به جاي آن j ميگذاريم. آپشن j هم به فرمت bzip2 فايل را فشرده ميکند.
[N.pardis@Lpi1~]$ tar cvfj all. فرمان backup به سيستمعامل )هر سيستمعاملي( ميگويد م يخ واهم بنو يس م رو ي Tape سيس تم عام ل م يآي د ب ه –
Device Driver Tape ميگويد بنويس. device driver tape هم مينويسد. هميشه ب ه ا ي ن ص ور اس ت ک ه device Driver به Device فرمان ميدهد جواب فرمان که آمد آناليز ميکند. به Tape ميگويد بنويس interrupt ميدهد و Tape
که اين کار را انجام داد interrupt انجام کار ميدهد و ميگويد من اين کار را کردم. حالا اگر Tape پاره شده باش د ي ا چ روک
شده باشد و کابل مشکل داشته باشد و Tape کثيف باشد يا head کثيف باشد Device به Device Driver ميگويد که من
مشکل دارم در نوشتن، اوّل سيستمعامل ميآيد روي کنسول و log File پي ام را مينويسد روي کنسول مينويسد Tape پ اره
شده، head کثيف است و … و بعد به فرمان Tar ميگويد که کار قبليتان را نتوانستيد انجام دهيد. پ س يادت ان باش د ک ه اگ ر
سختافزار خراب باشد دو دسته خطا ظاهر خواهد شد.
)1 Device Driver erro
2 ( پي ام error اي که خيلي زياد ديده ميشود اينست: archive is incompleted unexpected end of File ميگوي د
که back up کامل نيست و ميگويد توقع نداشتم اين قدر زود آخر فايل را ببينيم.
که ميتواند به دليل برق رفتن در حين backup گيري باشد. پس backup گيري با اين که ساده است ولي خيلي مهم اس ت و
نياز به استراتژي و سياستگذاري دارد.
rsh
فرمان ديگري که بررسي ميکنيم rsh )مخفّف Remote Shell ( ميباشد که يک فرماني را ميگ و ييم رويي ک ک امپ يوتر ديگ ر
اجرا کن. مثلاً ما دو کامپيوتر C1 و C2 داريم که از طريق شبکه ب ه يک د يگر متص ل هس تند C1 در دانش گاه ش ر يف و C2 در
دانشگاه علم و صنعت که نقطه مقابل يکديگر هستند )و اگر يکي از کامپيوترها ( و ميگوييم C1 فرمان tar را روي C2 اجرا کند و
backup را در C2 نگه ميداريم.
[N.pardis@Lpi1~]$ man rsh
به عنوان مثاال فرمان rsh به سايت CNN وصل ميشود و ميگويد Date را اجرا کن.
[N.pardis@Lpi1~]$ rsh CNN.com date
27cpio
cpio مخفّف copy input output ميباشد و يکي ديگر از روش هاي backup گيرياست. حالا فرم ان روب رو را م يزن يم ک ه
اعتراض ميکند ميگويد بايد مشخص ميکردي :
[N.pardis@Lpi1~]$ cpio
[N.pardis@Lpi1~]$ cpio-i
cpio –i را که ميزنيم منترر ورودي ميماند. حالا با cpio بکآپ ميگيريم:
[N.pardis@Lpi1~]$ rm all
cpio مثل tar نيست که فقط بگوييم از دايرکتوري من يعني. )نقطه( و قبول کند بلکه ميگويد به من اسم فايل بدهيد. حالا اين
فرمان را ميزنيم
[N.pardis@Lpi1~]$ find . | cpio -o > all
فرمان find هر چي object مادر دايرکتوري خودمان داريم نشان ميدهد و چون ما نميخواهيم خروجي را ببينيم آن را ب ه cpio
پايم مي کنيم و اين فرمان را ميزنيم
[N.pardis@Lpi1~]$ find . |cpio -o >all
در cpio آپشن ايجاد فايل o است و cpio ميگويد من اسم فايل نميدانم خود backup را redirect کن ج ا يي ک ه دوس ت
داري. cpio مثل tar هِدِر و اطلاعا دارد و در پايانش علامت کنترلي ميگذارد. وقتي اين فرمان را ميزنيم باز هم اعتراض مي-وقتي فرمان روبهرو را بزنيم ميگويد جنس آن از نوع cpio ميباشد.
[N.pardis@Lpi1~]$ file all
در cpio هم با خود حرف زدن يا زمزمه کردن هم همان v است که در tar داشتيم.
[N.pardis@Lpi1~]$ find. |cpio –ov>all
حالا چک کنيد که در cpio چطور ميشود backup را test کرد که درست هست يا نه؟
[N.pardis@Lpi1~]$ man cpio
[N.pardis@Lpi1~]$ info cpio
[N.pardis@Lpi1~]$ cpio –itv < all فايل namef را پاک کنيد و سپس از back up بازگردانيد با روش cpio ؟
[N.pardis@Lpi1~]$ rm namef
[N.pardis@Lpi1~]$ cpio -iv < all namef
اگر همين فرمان را دوباره بزنيد error ميدهد و اين فايل را ميگويد يا هم سن و سالش است يا جديدتر است و دوب اره درس ت
نميکند.
اين دو فرمان tar و cpio به اين صور نيستند که اگر backup ناقص گرفته شد. دوباره از ادامهاش بيايد در نوار بنويس د چ ون
نميتواند انتهاي نوار را پيدا کند. مگر اينکه خودتان بياييد وقتي دارد backup ميگيرد تک تک اسم فاي له ا را ب را ي خودت ان
ايميل کنيد يا يک جا نگه داريد .
[N.pardis@Lpi1~]$ find. |cpio -ov > all | mail -s backup n. pardis يک cpio استاندارد فشرده نميکند.
کاري کنيد که backup ايکه از cpio ميگيريم فشرده باشد؟ چرا دستورا زير به درستي فعاليت مورد نرر ما را انج ام
نمي دهند؟
[N.pardis@Lpi1~]$ man zip
[N.pardis@Lpi1~]$ man cpio
[N.pardis@Lpi1~]$ cpio –ov > all |zip -9 x
[N.pardis@Lpi1~]$ cpio -o |bzip2 > all. Bz2
[N.pardis@Lpi1~]$ find . |cpio –o| bzip2 > all.bz2 در ابتداي هِدِر فايل tar و cpio چه چيزي داريم؟
هر فايل شناخته شدهاي در دنيا ابتدايش ميگويد که جنس فايل چيست! که به آن اصطلاحاً magic Number م يگوين د. ب ا
اين فرمان ميتوانيم ليستي از magic number هاي شناخته شده را ببينيم:
[N.pardis@Lpi1~]$ less/usr/share/magic
ميبينيم که اگر /cpio بزنيد magic number آن 272727 است.
: کاربرد –p در فرمان cpio چيست؟
[N.pardis@Lpi1~]$ find . |cpio–dumpv</tmp/pardis1
ما با اين option ها و دستور cpio ميتوانيم از يک ساختار يک کپي جاي ديگر داشته باشيم با همان شناسنامهها.
d : يعني اگر لازم بود directory بساز
u : يعنيبيقيد و شرط خطالي توليد نکن اگر ساخته شده بود.
m : يعني شناسنامه ام را ت يير نده.
p: آپشن o تمام فايلها را يکپارچه ميکند و يک فايل بزرگ ميشود ولي – –p همان فايلها هر تع داد ي ک ه باش ند را backup
ميگيرد با همان permission ها و شناسنامه و عين ساختاربندي خودش را به ما ميدهد.
اگر با tarbackup, بگيريد ميتوانيد با cpio هم آن را بخوانيد. پس cpio هم فايلهاي خودش را ميخواند هم فايلها tar
را.
فرمان ديگري که براي بکآپگيري داريم dump است. فايل backup نميگيرد بلکه partition را backup ميگيرد.
Amonda نرم افزاري است که مديريت روي نحوهي backup گيري را انجام ميدهد. به ما اين امک ان را م يده د ک ه ب ا
مديريت روي backup از يک network بکآپ بگيريم.البته مديريت آن استراتژي ميخواهد.اين نرم افزار از فرمان tar براي بک-
آپگيري استفاده ميکند.
کند و ميگويد اين فايل اندازه اش در حال ت يير است و من از اين فايل back up نميگيرم.