نحوه گرفتن بکاپ کامل از سیستم با rsync


در این مقاله می خواهیم با استفاده از دستور rsync تمامی مسیر / بجر چند فولدر خاص را منتقل کنیم. این روش نسبت به روش کپی کردن دیسک که با دستور dd صورت میگیرد بسیار مناسب تر است زیرا اجازه می دهد پارتیشن ها و فایل سیستم های متفاوت و سایزهای متفاوت دیسک بهره مند شویم. همچنین از روش کپی کردن cp –a بهتر است زیرا کنترل بیشتری بر روی سطوح دسترسی، صفات و Access Control Lists و extended attributes به ما می دهد.
تمامی روشهای فوق برای کپی کردن یک سیستم در حال اجرا قابل استفاده می باشد اما فایلهایی که در این مدت تغییر می کند ممکن است منتقل بشوند یا نشوند. که این مورد برای برخی از نرم افزارهایی که با فایلهای تغییر داده کار می کنند ممکن است مشکلی بوجود بیاورند.این روش همچنین برای مهاجرت از یک هارد دیسک به هارد دیسک دیگر و یا از یک سیستم عامل به سیستم عامل دیگر مناسب است.

با یک تک دستور :
دستور زیر را تحت یک کاربر root اجرا کنید تا مطمعن شوید rsync به تمامی فایلهای موجود و فایلهای سیستمی می تواند دسترسی داشته باشد و مالکیت آنها را حفظ کند.
# rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / /path/to/backup/folder
با استفاده از سوئیچ aAX-- این تنظیمات را انجام می دهیم که تمامی فایلها در قالب فشرده شده بصورتیکه تمامی لینکهای نمادین فایلها به حالت آرشیو منتقل می شوند. اطمینان داشته باشید که لینکهای نمادین، دستگاه ها، سطوح دسترسی ها و مالکیت ها ، تغییرات زمانی ، ACL ها و ویژگیهای توسعه تماما حفظ می شوند.( با در نظر گرفتن اینکه سیستم عامل مقصد از این موارد پشتیبانی می کند.)
سوئیج exclude- این اجازه را به شما می دهد تا مسیرهای مشخصی را نادیده بگیرید.برای مثال محتوای پوشه های dev, /proc, /sys, /tmp, /run در دستور فوق حذف شده اند. زیرا پوشه ها در هنگام بوت شدن سیستم لود می شوند. (هرچند که آنها حقیقتا ساخته نمی شوند) مسیر /lost+found یک مسیر مخصوص فایل سیستم است.

نکته:
  • اگر تمایل به بکاپ گرفتن از سیستمتان را در مسیری غیر از /mnt یا /media را دارید مطمعن شوید که آنها در مسیر exclude وجود داشته باشند در غیر اینصورت یک چرخه بی نهایت ایجاد خواهید کرد.
  • اگر مسیرهای مشخصی را در سیستم خود mount کرده اید، آنها را نیز می بایست از لیست Bound خود حذف کنید چرا که فقط لازم است یکبار محتوای آنها کپی شود.
  • اگر از فایل swap هم استفاده می کنید اطمینان حاصل کنید که آن فایلها در لیست استثناها باشند.
  • چنانچه بخواهید مسیر /home/ را منتقل کنید عموما این پوشه اطلاعات بیشتری به نسبت پوشه های سیستمی دارد.استثنا کردن یک تعداد از فایلهای غیر نیاز مانند /home/*/.thumbnails/*, /home/*/.cache/mozilla/*, /home/*/.cache/chromium/*, /home/*/.local/share/Trash/* به شما کمک می کند که فضای کمتری اشغال کنید و اطلاعات مورد نیاز را منتقل نکنید که این مورد بسته به نرم افزارهای روی سستم ممکن است متفاوت باشد.
شما همچنین می توانید دستورات و سوئیچ های بیشتری را به rsync اضافه کنید.(جهت مشاهده لیست کامل این دستورات man rsync را کلیک کنید):
  • اگر از تعداد زیادی hardlink استفاده می کنید حتما دستور H- را اضافه کنید. این دستور بصورت پیش فرض به دلیل مصرف بالای حافظه رم غیرفعال است هرچند که در اکثر سیتسم های جدید مشکلی بوجود نمی آورد. خیلی از مسیرهای Hardlink در پوشه /usr/ قرار دارند.
  • ممکن است تمایل داشته باشد دستور –delete را به دستور اصلی خود اضافه کنید، چنانچه می خواهید چندین بار این دستور را بر روی پوشه بکاپ خود اجرا کنید. این سوئیچ به شما این اطمینان را می دهد مسیرها هیچگاه بصورت /* نشوند. این مورد فقط بر روی فایل هایی که درون زیر پوشه های پوشه اصلی وجود دارند اتفاق می افتد اما بر روی فایلهای موجود در پوشه اصلی اثری ندارد.
  • اگر از فایلهایی که بصورت هارد مجازی استفاده می شوند مانند virtual disks ، Docker images و مشابه آن شما باید دستور S- را استفاده کنید.
  • سوئیچ numeric-ids-- این اجازه را به شما می دهد که ارتباط بین نام کاربری و نام گروهها را غیرفعال کنید و بجای آنها از شناسه گروهها و کابران برای انتقال استفاده کنید. این روش به شما این اطمینان را می دهد که در صورت انتقال بر روی SSH فایل سیتسم فعال شما بتواند به سیستم دیگری منتقل شود.
  • استفاده از سوئیچ info=progress2 -- به جای v- پروسه و سرعت انتقال کپی کردن اطلاعات را به شما نشان می دهد.

اگرنیاز داشتید که بکاپ خود را بازیابی کنید از همان دستور rsync که در ابتدا استفاده کردید بکار ببرید فقط منبع و مقصد را باید معکوس نمائید.


نیازمندیهای بوت شدن:
داشتن یک نسخه پشتیبان با قابلیت بوت شدن می تواند در مواقعی که سیستم خراب می شود یا پروسه آپدیت سیستم شما باعث خرابی سیستمتان می شود میتواند کاربردی باشد. این بکاپ همچنین به شما این اجازه را می دهد که شما بتوانید یک بستر تستی با مخازن تستی در اختیار داشته باشید و قبل از بروز رسانی سیستم اصلی خود، بروز رسانی را بر روی این سیستم تست نمائید. اگر شما فایلهای سیستمی را در پوشه ها یا پارتیشن های متفاوتی منتقل کرده اید و می خواهید آنها را بوت کنید این روش به راحتی آپدیت کردن فایل /etc/fstab بر روی فایل تنظیمات bootloader خود می باشد. که به راحتی با Edit کردن این فایل می توانید این کار را انجام دهید. در ادامه این تصور را داریم که شما بصورت کامل سیستم خود را بکاپ گرفته اید و بر روی یک هارد، یک درایو و یا یک پارتیشن دیگر آنها را بازیابی کرده اید و سیستم بوت فعلی شما بدرستی کار می کند و می خواهید که از روی بکاپ نیز بوت شما بدرستی کار کند.

بروزرسانی fstab :
پس از انتقال اطلاعات قبل از اینکه سیستم خود را Restart نمائید فایل fstab را باز کنید و تمام محتوای آن را حذف کنید و یک رکود پارتیشن بکاپ را مانند نمونه زیر در سیستم اضافه کنید.

/dev/sdaX / ext4 defaults 0 1
بخاطر داشته باشید که شما می بایست مسیر صحیح و فایل سیستم صحیح را در مورد نمونه فوق مطابق نیاز خود اصلاح کنید

بروزرسانی فایل تنظیمات bootloader ها:
در syslinux تنها کاری که لازم است این است که یک کپی از رکورد مورد نظر تهیه کرده و فقط مسیر درایو یا پارتیشن را تغییر دهید.

نکته : بجای ویرایش syslinux.cfg، شما می توانید در زمان بوت بصورت موقت منو را ویرایش کنید. وقتی که منو نشان داده می شود کلید تب را فشار دهید و ورودی های مربوطه را تغییر دهید. پارتیش ها از یک و درایوها از صفر شمارش می شوند.

برای Grub توصیه می شود که بصورت خودکار فایلهای تنظیمات را ایجاد کنید. اگر نیاز دارید که تمامی فایلهای Grub را در مسیری به غیر از /boot مانند مسیر /mnt/newroot/boot ، از دستور --boot-directory flag استفاده کنید.
همچنین اطمینان حاصل کنید که ردیف درج شده در /boot/grub/grub.cfg شناسه هارد دیسک (UUID) با پارتیشن جدید همخوانی دارد در غیر اینصورت سیستم همچنان از سیستم قدیمی بوت می شود. با استفاده از دستور زیر می توانید UUID هر پارتیشن را پیدا کنید:
# lsblk -no NAME,UUID /dev/sdb3
پس از جابجا کردن پارتیشن مورد نظر خود برای مشاهده کردن UUID هایی که Grub می تواند از روی آنها بوت کند دستور زیر را استفاده کنید.
# grep UUID= /boot/grub/grub.cfg
اولین Boot :
تمامی مسیرهای موقتی حذف شده و پوشه هایی که در مسیر / خالی بودند با اطلاعات جدید پر می شوند. حالا شما می توانید با ویرایش کردن مجدد فایل /etc/fstab مسیرهای مورد و پارتیشه ها و mount point نظر خود را مجدد ایجاد نمائید.

آیا این پاسخ به شما کمک کرد؟


 چاپ این مقاله

خوانده شده

اسکریپت تهیه نسخه پشتیبان از فایلها و بانکهای اطلاعاتی در SSH

در سرورهای لینوکسی می توانید با استفاده ازاین اسکریپت در SSH به اهداف ذیل دست پیدا کنید:...

دستورات مفید SSH برای مدیریت CFS

CFS یکی از بهترین نرم افزارهای فایروال برای سرورهای لینوکسی می باشد. در این مقاله برخی از دستورات...

چگونه یک گروه CSF برای همگام سازی لیست های سیاه(Blacklists) و لیست های سفید(Whitelists) ایجاد کنیم؟

ما دیده ایم که بسته های کانفیگ فایروال سرور (CSF) یک راه حل امنیتی استاندارد قدرتمند است برای...

نحوه ZIP و UNZIP کردن فایلها بوسیله SSH

ابتدا از طریق نرم افزار Putty و یا Terminal به سرور خود متصل شوید. برای ZIP کردن فایلها دستور...

مشاهده لیست آدرسهای IP متصل به سرور

با استفاده از دستور زیر در UNIX می توانید کلیه آدرس های متصل به پورت 80 سرور خود را مشاهده کنید:...

Powered by WHMCompleteSolution