linux

نحوه گرفتن Full Backup از لینوکس توسط کامند tar

ستاره غیر فعالستاره غیر فعالستاره غیر فعالستاره غیر فعالستاره غیر فعال
 

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

 

کامند tar می‌تواند کاملا پیچیده باشد. بهمین دلیل توصیه می‌شود کامندهای مورد نیاز را درون یک فایل ذخیره کرد و یک شل‌اسکریپت نوشت. همینطور می‌بایست یک دایرکتوری ایجاد شود تا فایل‌های Backup را درآن منتقل کرد.

کامند‌های زیر را وارد کنید:

 

cd /
mkdir backups
cd backups

از ویرایشگر مورد نظر خود برای ایجاد فایل شل‌اسکریپت استفاده کنید: (در اینجا از viاستفاده شده است)

 

vi fullbkp.sh

و کامندهای زیر را درون این فایل وارد کنید.

 

tar -cvpf /backups/fullbackup.tar --directory=/ --exclude=proc
--exclude=sys --exclude=dev/pts --exclude=backups

پس از اینکه کامندها را وارد کردید فایل را دخیره کنید.

در این فایل، اپشن c فایل پشتیبان را ایجاد می‌کند. اپشن v خروجی زمان اجرای کامند را برای جزئیات بیشتر نمایش می‌دهد. اپشن p مجوز فایل و دایرکتوری را حفظ می‌کند. اپشنf می‌بایست که در انتها آورده شود به‌ دلیل اینکه به شما اجازه می‌دهد بعد از کامند نام دایرکتوری و فایلی که در آن tar فایل ذخیره می‌شود را تعیین کنید.

( در اینجا backups/fullbackup.tar/ )

اپشن directory-- به tar فرمان می‌دهد که قبل از آغاز اجرای Backup، به دایرکتوریroot برود.

بعضی از دایرکتوری‌ها را می‌بایست exclude— از Backup کرد، زیرا محتویات این دایرکتوری‌ها توسط سیستم‌عامل ایجاد شده‌اند. همچنین دایرکتوری‌ که فایل پشتیبان در آن ذخیره می‌شود نیز بایستی از مسیرهای تهیه فایل پشتیبان حذف شود.

توصیه شده است که اسلش در اپشن exclude=/proc-- استفاده نشود و قبل از procعلامت / (اسلش) حذف گردد، در غیراینصورت از این دایرکتوری فایل پشتیبان تهیه خواهد شد! و در هنگام Backup خطا میدهد زیرا فایل درحال تغییر است.

قبل از اینکه بتوان فایل حاوی اسکریپت را اجرا کرد، می‌بایست فایل قابل اجرا شود. که می‌توان مطابق زیر مجوز اجرایی به آن داد.

 

chmod 750 /backups/fullbkp.sh
./backups/fullbkp.sh

در حال حاضر مالک فایل و افرادی که در گروه تعیین شده برای فایل هستند قادر به اجرای اسکریپت می‌باشند.

برای بازگرداندن tar backup می‌بایست به بالاترین سطح دایرکتوری که از آن فایل پشتیبان تهیه شده است بروید، تا بطور صحیح فایل‌ها بازگردانی شوند. برای بازگردانی فایل‌ها کافیست، اپشن x را با c در کامند tar قبلی جایگزین کرد.

 

tar -xvpf /fullbackup.tar 

داشتن فایل پشتیبان از فایل‌های مهم در سیستم خوب است به شرطی که هارد دیسک ما دچار مشکل نشود، در غیر اینصورت فایل پشتیبان نیز دیگر در دسترس ما نخواهد بود.بهمین دلیل توصیه می‌شود فایل tar backup یا (tar ball) را به سرور یا فضای دیگری منتقل کنیم ( در صورت داشتن سرویس FTP، استفاده از FTP).

همچنین توسط کامند tar شما قادر هستید تا یک فایل پشتیبان compress شده تهیه کنید، زیرا اکثر فایل‌های لینوکسی متنی هستند. از این رو حافظه کمتری اشغال خواهد شد و می‌توان فایل را برروی CD یا DVD آرشیو کرد.

برای فعال کردن فشرده‌سازی می‌بایست از کلید z استفاده کنید. هم در زمان tar‌ کردن و هم در زمان untar کردن. برای فشرده کردن فایل tar بایستی نام فایل نیز مطابق زیر تغییر یابد. (افزودن gz به انتهای فایل).

 

tar -zcvpf /backups/fullbackup.tar.gz --directory=/ --exclude=proc
--exclude=sys --exclude=dev/pts --exclude=backups

همینطور کامند untar به شکل زیر تغییر می‌یابد:

tar -zxvpf /fullbackup.tar.gz 

برای اطلاع یافتن در مورد کامند tar توصیه می‌شود منوال tar خوانده شود.

Man tar

در پاسخ به دوستمون که سوال زیر رو مطرح کردن:
 <
اینو تست کردم که ارور زیر و داد نمیدونم مشکل چیه.
با سوپر یوزرم که تست کردم بازم مشکل داد. میتونی کمک کنی بازم ممنون

sudo ./fullbkp.sh
tar: Cowardly refusing to create an empty archive
Try `tar --help' or `tar --usage' for more information.
./fullbkp.sh: 3: ./fullbkp.sh: --exclude=sys: not found
>
باید بگم که فایلی که شما میخواهید از آن tar بگیرید یک فایل خالی است، به همین دلیل به شما همچین اروری داده.

همینطور در خصوص انتخاب سرور مناسب همونطور که خودتون گفتین centos گزینه مناسبی هست.