تهیه نسخه پشتیبان یا بکاپ یکی از مهترین کارهایی است که فردی که با داده های دیجیتال سر و کار دارد باید بری حفظ داده های خود انجام دهد، در این قسمت میخواهیم مروری داشته باشیم بر برهی راههای تهیه نسخه ‍پشتیبان از داده های دیجیتال در توزیع های سیستم عامل گنو لینوکس .
شاید در ابتدا باید بگوییم چرا باید بکاپ گرفت؟ یا اصلا بکاپ چیست؟ شاید ساده ترین تعریف از بکاپ را بشود اینگونه گفت که نسخه ای از اطلاعات شما که در جایی غیر از سیستم شما قرار دارد و در صورت آسیب رسیدن به نسخه اصلی اطلاعات می شود به ان دسترسی داشت (قبول دارم این تعریف بسیار ناقص است) اما چرا باید بکاپ گرفت؟ در این روزها مسائل زیادی است که اطلاعات ما را تهدید میکند، از بلایای طبیعی مانند سیل، زلزله، آتش سوزی و … تا قطع یکباره برق، همکاری عصبانی که با لگد به کیس شما می زند و موجبات سوختن هارد را پدید می آورد یا دستور اشتباهی که نتیجه اش تفاوت آشکاری با ان لگد همکاراتان ندارد و البته نفوذگران و باج افزارها و ..،، اینها گوشه ای از مواردی است که لزوم داشتن نسخه پشتیبان به روز از داده های حساس شما رو بسیار مهم میکند

دسته بندی و اولویت بندی و استراتژی داده ها

آیا لازم است نسخه ای از کل داده های روی سیستم خود داشته باشم؟ چگونه باید اولویت بندی کنم؟ من برای جواب به این سوال نیم نگاهی به فایل هایی که بر روی سیستم شخصی خود انداخته و براساس انها این تیتر را توضیح میدهم، در کامپیوتر من داده هایی در موضوعات زیر موجود است :

«فایل های متنی شخصی»، «فایل های اموزشی»، «فیلم و موسیقی»، «عکس های شخصی»،
 «کد سورس برنامه های نوشته شده کاری» و «برنامه های نصب شده بر روی سیستم» 

در میان دسته های بالا بنا بر اولویت ها و استراتژی کاری شما میتوان انواع مختلف اولویت بندی را مد نظر قرار داد، به عنوان نمونه فردی در مورد عکسهای شخصی میگوید که این داده ها به صورت اتوماتیک بر روی اکانت گوگل من ذخیره می شود و نیازی به تهیه بک اپ از انها ندارم، فردی کدهای برنامه نویسی کاری را بر روی اکانت (Github / Gitlab) شخصی خود یا Git / bazaar / و … شرکت ذخیره میکند و نیازی به بک آپ گیری از آنها ندارد

RTO (Recovery Time Object)

در چه زمانی باید دیتای از دست رفته با استفاده از نسخه پشتیبان به وضعیت دلخواه شما بازگردد

Media

میخواهیم نسخه پشتبان را در چه چیزی ذخیره کنیم؟ بخشی از انواع Media که برای این کار مورد استفاده قرار میگیرد بدین شرح است : لوح فشرده، DVD ، HDD ، SSD ، Cloud ، Storage ، Tape و …

نمونه ای از دسته بندی و اولویت بندی برای پشتیبان گیری داده ها را میتوانید در جدل زیر ببینید :

نوع داده اهمیت RTO Media
فایل های متنی [x] 7d dvd
فایل های اموزشی - - -
فیلم و موسیقی - - -
عکس های شخصی [x] 7d dvd
کد سورس برنامه ها [x] 1d tape
برنامه های نصبی - - -

امنیت داده و محل قرارگیری نسخه پشتبان

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

انواع بازگرداندن نسخه پشتیبان

1- File
2- Partition
3- System
& ...

انواع پشتیبان گیری

1- Full backup
2- Incrimental
3- Diffrential
4- Snapshot
& ...

** شاید یک سوال در مورد سیستم های کامپیوتری برای یک کاربر عادی و غیر متخصص پیش بیاید و اینکه کدام فایل های سیستم من دارای اهمیت بیشتری برای پشتیبان گیری است ؟ برای پاسخ به این سوال به پوشه root سیستم می روم و دستور ls را به اجرا در می آورم تا ببینم چه پوشه هایی را میبینیم

 
i@life:~$ ls / 0 boot dead.letter etc initrd.img lib lib64 lost+found mnt proc run srv tmp var vmlinuz.old bin cdrom dev home initrd.img.old lib32 libx32 media opt root sbin sys usr vmlinuz

در لیست بالا بسیاری از فولدرها مربوط بهع عملیات سیستم عامل و یا نرم افزارهای اجرایی هستند، اما در فایل های چون Home ، opt، root، usr ، etc ، var احتمال وجود فایل های غیر سیستمی ک نیاز به پشتیبان گیری دارند وجود دارد

برنامه ها و دستورهای کاربردی برای تهیه نسخه پشتیبان

برنامه های تجاری و رایگان بسیاری در حوزه تهیه نسخه پشتیبان وجود دارد که هر یک براساس مولفه های مورد نظر نویسنده خود اقدام به تهیه بکاپ از سیستم شما میکنند، استفاده از این برنامه ها جزو خط و مشی کمتر کاربر حرفه ای است، این موضوع دلایل مختلفی دارد که خارج از اولویت های این نوشته است، اما برای تهیه نسخه پشتبان از داده ها، دستورات گوناگونی را می توان مورد استفاده قرار داد که معروفترین آنها را میتوان اینگونه برشمرد : tar ، rsync ، dd و cpio

tar

برای استفاده از این دستور میتوان به عنوان نمونه به شکل زیر رفتار کرد :

tar -cf /tmp/backup_of_tm.tar /home/i/work/tm

و اگر بخواعیم به شکل gzip باشد :

tar czf /tmp/backup_of_tm.tar /home/i/work/tm

برخی آپشن های tar به شرح زیر است (برای دیدن لیست کامل آن می توان به man page مراجعه کرد) :
c creat
f file
z gzip
j bzip2
J xz
t file list without extract
U only update

ذخیره نسخه پشتیبان در tape

برای این کار از دستور mt باید استفاده کرد، برای دیدن داخل tape میتوان به شکل زیر رفتار کرد :

i@life:~$ ls /dev/st*

البته در مواردی هم به شکل nst هستند:

i@life:~$ ls /dev/nst*

برای استفاده از دستور mt به این شکل باید رفتار کرد :

i@life:~$ mt -f /dev/st0 OPERATION [count] [arg]

موارد OPERATION در این دستور به این شرح است :
status
load در نسخه های قدیمی برای خواندن اولیه tape
erase پاک کردن کل tape
fsf 4 4 فایل به جلو میرود
bsf 3 3 فایل به عقب باز میگردد
tell میگوید کجا هستیم
eod به پایان فایل می رود
rewind به ابتدای tape می رود
eject
offline
چند مثال :

i@life:~$ mt -f /dev/st0 load
i@life:~$ mt -f /dev/st0 erease
i@life:~$ mt -f /dev/st0 rewind
i@life:~$ mt cf /dev/st0 /home

دستور resync

مانند دستور کپی cp رفتار میکند و با فرمی به مانند فرم زیر میتوان آن را اجزا کرد (برای آپشن های بیشتر می توانید به man page) مراجعه کنید :

 
i@life:~$ rsync -avh /home/i/Downloads/ /tmp

کد بالا با توجه به آپشن هایش در دفعات دوم به بعد اجرا، فقط فایل های جدید و تغییر یافته را به نسخه پشتبان می افزاید. همچنین با دستور فوق میتوان نسخه پشتبان را بر روی حافظه تخصیص یافته بر روی شبکه ایجاد کرد، به عنوان نمونه می شود به مثال زیر اشاره کرد :

 
i@life:~$ rsync -avh /home/i/Downloads/ kave@192.168.1.100:/var/backup

دستور dd

این دستور نیز به مانند دستورهای پیشتر گفته شده در این برگه، برای تهیه نسخه پشتیبان استفاده می شود، فرم استفاده از دستور به شکل زیر است :

 
i@life:~$ dd if=file_input of= file_output

به عنوان مثال:

 
i@life:~$ dd if=/dev/sda of=/dev/sdb

این دستور دقیقا یک کلون از ورودی را در خروجی ایجاد میکند، برای این دستور می شود بلاک سایز (bs) و count را تنظیم کرد .

  • یکی از کاربردهای دستور در مورد جلوگیری از بازیابی فایل های حذف شده است :
 
i@life:~$ dd if=/dev/zero of=/dev/sdb

با اجرای این دستور فایل مملو از o (zero) خواهد شد






نوشته : کاوه رضائی شیراز
فهرست مطالب آموزش گنو لینوکس