بکاپ گیری منظم از سرور مجازی، یکی از حیاتیترین اقدامات برای حفظ اطلاعات و جلوگیری از ضررهای احتمالی ناشی از خرابی سختافزاری، حملات سایبری، خطاهای انسانی و سایر اتفاقات ناگوار است. بکاپگیری امکان بازگشت به نسخههای قبلی دادهها را در صورت ایجاد تغییرات ناخواسته یا بروز خطا فراهم میکند. علاوه بر این، بکاپگیری منظم به سازمانها کمک میکند تا الزامات قانونی و استانداردهای مربوط به حفظ و نگهداری دادهها را رعایت کنند و در صورت لزوم، اطلاعات را برای مراجع قانونی ارائه دهند. در نهایت، بکاپگیری به عنوان یک استراتژی پیشگیرانه، آرامش خاطر را برای مدیران و صاحبان کسبوکار فراهم میکند و از خسارات مالی و اعتباری ناشی از از دست رفتن اطلاعات جلوگیری میکند. در این مقاله به بررسی بهترین روشهای بکاپ گیری از سرورهای مجازی لینوکس و ویندوز میپردازیم.
خرید سرور مجازی لینوکس
بکاپ گیری از سرور مجازی لینوکس
روشهای مختلفی برای بکاپ گیری از سرورهای لینوکس وجود دارد که در ادامه به مهمترین آنها اشاره میکنیم:
1. rsync (Remote SYNC)
ابزار rsync یک ابزار قدرتمند و انعطافپذیر برای همگامسازی و پشتیبانگیری از فایلها و دایرکتوریها در سیستمهای لینوکس و یونیکس است. این ابزار به خصوص برای پشتیبانگیری افزایشی (incremental backup) بسیار مناسب است، زیرا فقط تغییرات ایجاد شده در فایلها و بخشهای غیرمشترک و متفاوت بین آنها را منتقل میکند تا نسخهای یکسان از اطلاعات در هر دو سرور ایجاد شود که در نتیجه باعث صرفهجویی در زمان و پهنای باند میشود. در ادامه مراحل بکاپ گیری با استفاده از rsync را به طور کامل توضیح میدهم:
نصب rsync
اگر rsync به صورت پیشفرض روی سیستم شما نصب نیست، میتوانید آن را با استفاده از دستور زیر نصب کنید:
در توزیعهای مبتنی بر دبیان Debian (مانند اوبونتو و دبیان):
sudo apt update
sudo apt install rsync
در توزیعهای مبتنی بر RHEL (مانند CentOS و Fedora):
sudo yum install rsync
دستورات اصلی rsync
ساختار کلی دستور rsync به صورت زیر است:
rsync [OPTIONS] SOURCE DESTINATION
-
OPTIONS: گزینههای مختلفی که نحوه عملکرد rsync را تعیین میکنند.
-
SOURCE: منبع فایلها یا دایرکتوریهایی که میخواهید از آنها پشتیبان بگیرید.
-
DESTINATION: مقصد فایلها یا دایرکتوریهایی که میخواهید پشتیبانها در آنجا ذخیره شوند.
گزینههای OPTIONS مهم rsync:
-a یا --archive: این گزینه شامل چندین گزینه دیگر است و برای بکاپگیری آرشیوی استفاده میشود. این گزینه معادل -rlptgoD است که به ترتیب به معنای موارد زیر است:-r یا --recursive: بکاپگیری بازگشتی (شامل زیرشاخهها).
-l یا --links: حفظ لینکهای نمادین.
-p یا --perms: حفظ مجوزهای فایلها.
-t یا --times: حفظ زمان تغییر فایلها.
-g یا --group: حفظ گروه فایلها.
-o یا --owner: حفظ مالک فایلها (نیاز به دسترسی root).
-D: معادل --devices --specials است و فایلهای خاص و دستگاهها را نیز کپی میکند.
-v یا --verbose: نمایش جزئیات بیشتر در مورد فرآیند بکاپگیری.
-z یا --compress: فشردهسازی دادهها در هنگام انتقال.
-h یا --human-readable: نمایش اندازهها به صورت قابل خواندن برای انسان (مثلاً KB، MB، GB).
-n یا --dry-run: اجرای آزمایشی بدون اعمال تغییرات واقعی. برای تست دستور قبل از اجرای واقعی مفید است.
--delete: حذف فایلها در مقصد که در منبع وجود ندارند. این گزینه برای همگامسازی دقیق استفاده میشود.
-e ssh: استفاده از SSH برای انتقال امن دادهها بین دو سیستم.
مثالهای عملی:
بکاپگیری از یک دایرکتوری به دایرکتوری دیگر در همان سیستم:
rsync -av /path/to/source/ /path/to/destination/
بکاپگیری از یک دایرکتوری به یک دایرکتوری دیگر در یک سیستم دیگر از طریق SSH:
rsync -avz -e ssh /path/to/source/ user@remote_host:/path/to/destination/
در این مثال، user نام کاربری در سیستم مقصد و remote_host آدرس IP یا نام دامنه سیستم مقصد است.
بکاپگیری با حذف فایلهای اضافی در مقصد:
rsync -av --delete /path/to/source/ /path/to/destination/
اجرای آزمایشی قبل از بکاپگیری واقعی:
rsync -avn /path/to/source/ /path/to/destination/
نکات مهم
-
برای بکاپگیری افزایشی (incremental backup)، کافیست دستور rsync را به صورت دورهای اجرا کنید. rsync به طور خودکار فقط تغییرات ایجاد شده در فایلها را منتقل میکند.
-
برای بکاپگیری از کل سیستم (به جز دایرکتوریهای خاص مانند /proc و /sys)، میتوانید از دستور زیر استفاده کنید:
rsync -aAXv /* /path/to/backup/ --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"}
-
برای امنیت بیشتر، همیشه از SSH برای انتقال دادهها بین دو سیستم استفاده کنید.
-
به طور منظم بکاپهای خود را بررسی کنید تا از صحت آنها مطمئن شوید.
-
بکاپها را در مکانی جدا از سیستم اصلی ذخیره کنید (مثلاً هارد اکسترنال، سرور دیگر یا فضای ابری).
2. آرشیو کردن با ابزار tar
ابزاری برای آرشیو کردن فایلها است. با استفاده از tar میتوانید یک آرشیو فشرده از کل سیستم یا بخشهای خاص آن تهیه کنید. اگرچه این روش توسیه نمیشود، اما در مواقع ضروری که دسترسی به ابزارهای مناسب امکانپذیر نیست، میتواند کاربردی باشد. ابزار tar (مخفف Tape Archive) یکی از قدیمیترین و پرکاربردترین ابزارها برای آرشیو کردن فایلها و دایرکتوریها در سیستمهای لینوکس و یونیکس است. اگرچه نام آن به نوارهای مغناطیسی اشاره دارد، اما امروزه بیشتر برای ایجاد فایلهای آرشیو فشرده برای پشتیبانگیری، توزیع نرمافزار و غیره استفاده میشود.
tar به تنهایی فایلها را فشرده نمیکند، بلکه آنها را در یک آرشیو جمعآوری میکند. برای فشردهسازی، معمولاً با ابزارهای دیگری مانند gzip یا bzip2 ترکیب میشود. در ادامه، مراحل بکاپگیری با استفاده از tar را به طور کامل توضیح میدهم. ساختار کلی دستور tar به صورت زیر است:
tar [OPTIONS] [ARCHIVE_FILE] [FILE1] [FILE2] ...
-
OPTIONS: گزینههای مختلفی که نحوه عملکرد tar را تعیین میکنند.
-
ARCHIVE_FILE: نام فایل آرشیو (معمولاً با پسوند .tar، .tar.gz یا .tar.bz2).
-
FILE1 FILE2 ...: فایلها و دایرکتوریهایی که میخواهید آرشیو کنید.
گزینههای مهم دستور tar
گزینههای tar بسیار زیاد هستند، اما مهمترین آنها برای بکاپگیری عبارتند از:
برای ایجاد آرشیو:
-
-c یا --create: ایجاد یک آرشیو جدید.
-
-f یا --file: تعیین نام فایل آرشیو. این گزینه الزامی است.
-
-v یا --verbose: نمایش جزئیات بیشتر در مورد فرآیند آرشیو کردن.
برای فشردهسازی:
-
-z یا --gzip: فشردهسازی با استفاده از gzip (ایجاد فایل .tar.gz یا .tgz).
-
-j یا --bzip2: فشردهسازی با استفاده از bzip2 (ایجاد فایل .tar.bz2 یا .tbz).
سایر گزینههای مفید:
-
-p یا --preserve-permissions: حفظ مجوزهای فایلها.
-
--exclude=PATTERN: حذف فایلها یا دایرکتوریهایی که با الگوی PATTERN مطابقت دارند.
-
-C یا --directory=DIR: تغییر دایرکتوری قبل از انجام عملیات آرشیو.
مثالهای عملی
ایجاد یک آرشیو tar از یک دایرکتوری:
این دستور یک آرشیو به نام archive.tar از دایرکتوری /path/to/directory/ ایجاد میکند:
tar -cvf archive.tar /path/to/directory/
ایجاد یک آرشیو فشرده tar.gz:
این دستور یک آرشیو فشرده با فرمت gzip به نام archive.tar.gz ایجاد میکند:
tar -czvf archive.tar.gz /path/to/directory/
ایجاد یک آرشیو فشرده tar.bz2:
این دستور یک آرشیو فشرده با فرمت bzip2 به نام archive.tar.bz2 ایجاد میکند. فشردهسازی bzip2 معمولاً حجم کمتری نسبت به gzip دارد، اما زمان بیشتری طول میکشد.
tar -cjvf archive.tar.bz2 /path/to/directory/
حذف برخی فایلها یا دایرکتوریها از آرشیو:
این دستور تمام محتویات /path/to/directory/ را آرشیو میکند، به جز دایرکتوری exclude_this:
tar -czvf archive.tar.gz /path/to/directory/ --exclude="/path/to/directory/exclude_this/"
تغییر دایرکتوری قبل از آرشیو:
این دستور ابتدا به دایرکتوری /path/to/directory/ میرود و سپس تمام محتویات آن را (با . مشخص شده) آرشیو میکند. این روش باعث میشود که مسیر کامل دایرکتوری در آرشیو ذخیره نشود.
tar -czvf archive.tar.gz -C /path/to/directory/ .
۴. بازیابی از آرشیو:
برای بازیابی فایلها از یک آرشیو tar، از گزینه -x یا --extract استفاده کنید:
بازیابی تمام محتویات یک آرشیو:
tar -xvf archive.tar
بازیابی تمام محتویات یک آرشیو tar.gz:
tar -xzvf archive.tar.gz
بازیابی تمام محتویات یک آرشیو tar.bz2:
tar -xjvf archive.tar.bz2
بازیابی یک فایل خاص از آرشیو:
tar -xvf archive.tar /path/to/file/inside/archive
نکات مهم
-
برای بکاپگیری از کل سیستم (به جز دایرکتوریهای خاص مانند /proc، /sys و /dev)، میتوانید از دستور زیر استفاده کنید:
tar -czvf full_backup.tar.gz --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} /
این دستور کل سیستم را به جز دایرکتوریهای ذکر شده، آرشیو و فشرده میکند. احتیاط: این کار فضای زیادی را اشغال میکند و ممکن است زمان زیادی طول بکشد. -
همیشه بکاپهای خود را در مکانی جدا از سیستم اصلی ذخیره کنید (مانند هارد اکسترنال، سرور دیگر یا فضای ابری).
-
به طور منظم بکاپهای خود را تست کنید تا از صحت آنها مطمئن شوید.
3. بکاپ گیری با روش اسکریپتهای سفارشی
تهیه بکاپ با استفاده از اسکریپتهای سفارشی در لینوکس، به شما امکان میدهد تا فرآیند بکاپگیری را دقیقاً مطابق با نیازهای خود تنظیم کنید. این روش انعطافپذیری بالایی دارد و میتوانید از ترکیب ابزارهای مختلف مانند tar، rsync، mysqldump (برای بکاپ از پایگاه داده MySQL) و غیره استفاده کنید. در این روش میتوانید با استفاده از مجموعه دستورات ترمینال در یک فایل Bash، فرآیند بکاپ گیری را خودکار کنید و تنظیمات دلخواه خود را اعمال کنید. فایل Bash یک فایل متنی است که در آن مجموعهای از دستورات ترمینال قرار میگرید و با اجرای آن، این دستورات بصورت خودکار و پشت سر هم اجرا میشوند.
این فایل دقیقاً مشابه فایل Batch در سیستمعامل MS DOS و ویندوز است، اما در آن دستورات ترمینال لینوکسی قرار میگیرد. شما با ترکیب دستورات TAR با هدف تهیه نسخه پشتیبان، میتوانید یک فایل برای اجرای خودکار عملیات بکاپ ایجاد کنید. قبل از نوشتن اسکریپت، باید دقیقاً مشخص کنید که از چه چیزهایی میخواهید بکاپ بگیرید، بکاپها کجا ذخیره شوند و چه تنظیمات دیگری لازم است. به عنوان مثال:
-
آیا میخواهید از کل سیستم بکاپ بگیرید یا فقط از دایرکتوریهای خاص؟
-
آیا نیاز به بکاپ از پایگاه داده دارید؟
-
بکاپها باید به صورت فشرده ذخیره شوند؟
-
بکاپها باید در همان سیستم ذخیره شوند یا به یک سرور دیگر منتقل شوند؟
-
چه زمانبندی برای بکاپگیری مناسب است؟
برای نمونه، کدهای زیر میتوانند از مسیرهای تأیین شده، نسخه پشتیبان تهیه کند. شما میتوانیداین کدها را با توجه به مسیرهای مورد نظر خود تغییر دهید و در مواقع مورد نیاز از آن استفاده کنید :
#!/bin/bash
# تنظیمات
BACKUP_DIR="/path/to/backup/directory" # مسیری که از آن بکاپ گرفته میشود
BACKUP_DEST="/path/to/backup/destination" # مسیری که بکاپها در آن ذخیره میشوند
BACKUP_FILE="backup-$(date +%Y%m%d%H%M).tar.gz" # نام فایل بکاپ با تاریخ و زمان
# ایجاد دایرکتوری مقصد اگر وجود نداشته باشد
mkdir -p "$BACKUP_DEST"
# بکاپگیری و فشردهسازی
tar -czvf "$BACKUP_DEST/$BACKUP_FILE" "$BACKUP_DIR"
# بررسی موفقیت بکاپگیری
if [ $? -eq 0 ]; then
echo "Backup created successfully: $BACKUP_DEST/$BACKUP_FILE"
else
echo "Backup failed!"
fi
# حذف بکاپهای قدیمیتر از ۷ روز (اختیاری)
find "$BACKUP_DEST" -name "backup-*.tar.gz" -mtime +7 -delete
exit 0
توضیحات کد:
-
#!/bin/bash: مشخص کردن مفسر Bash برای اجرای اسکریپت.
-
متغیرها: برای تنظیم مسیرها و نام فایل بکاپ استفاده میشوند.
-
mkdir -p: دایرکتوری مقصد را در صورت عدم وجود ایجاد میکند.
-
tar -czvf: برای ایجاد آرشیو فشرده با فرمت tar.gz استفاده میشود.
-
$?: کد خروجی آخرین دستور اجرا شده را برمیگرداند. 0 به معنی موفقیت است.
-
find ... -mtime +7 -delete: فایلهای بکاپی که بیشتر از ۷ روز از زمان ایجادشان گذشته را حذف میکند.
در نهایت میتوانید با دستور زیر فایل را ذخیره و اجرا کنید:
دستور ذخیره فایل بش:
chmod +x backup.sh
دستور اجرای فایل بش:
./backup.sh
زمانبندی اجرای خودکار با Cron:
با تنظیم زمانبندی خودکار برای این فایل، عملیات تهیه نسخه پشتیبان از اطلاعات مورد نظر شما، بصورت زمانبندی و خودکار انجام میشود. برای اجرای خودکار اسکریپت در زمانهای مشخص، میتوانید از سرویس Cron استفاده کنید. این سرویس همیشه فعال است و مجموعه دستورات درون فایل Crontab را در زمان مشخص اجرا میکند. بنابراین برای اینکه فایل Bash خود را به این سرویس اضافه کنید، باید فایل Crontab را ویرایش کنید و در یک خط جدید، دستور اجرای آن را اضافه کنید. برای ویرایش فایل Crontab، از دستور زیر استفاده کنید:
crontab -e
سپس یک خط جدید به فایل اضافه کنید. به عنوان مثال، برای اجرای اسکریپت هر روز ساعت ۲ بامداد:
0 2 * * * /path/to/script/backup.sh
فرمت خطوط Crontab به صورت زیر است:
minute hour day_of_month month day_of_week command
مثالهای پیشرفتهتر: بکاپ از پایگاه داده MySQL:
mysqldump -u username -p'password' database_name | gzip > "$BACKUP_DEST/database_backup-$(date +%Y%m%d%H%M).sql.gz"
انتقال بکاپها به یک سرور دیگر با scp یا rsync:
scp "$BACKUP_DEST/$BACKUP_FILE" user@remote_host:/path/to/remote/backup/
و یا
rsync -avz "$BACKUP_DEST/$BACKUP_FILE" user@remote_host:/path/to/remote/backup/
ایجاد لاگ فایل
برای ثبت وقایع بکاپگیری، میتوانید از قابلیت Redirect خروجی استاندارد و خطای استاندارد به یک فایل استفاده کنید:
tar -czvf "$BACKUP_DEST/$BACKUP_FILE" "$BACKUP_DIR" &> /path/to/backup.log
نکات مهم
-
امنیت اسکریپت و فایلهای بکاپ را جدی بگیرید. از دسترسیهای غیرمجاز به آنها جلوگیری کنید.
-
به طور منظم بکاپها را تست کنید تا از صحت آنها مطمئن شوید.
-
از متغیرها برای تنظیم مسیرها و سایر تنظیمات استفاده کنید تا اسکریپت انعطافپذیرتر باشد.
-
از نظارت بر اجرای اسکریپت و بررسی لاگ فایلها غافل نشوید.
4. Timeshift
Timeshift ابزاری قدرتمند برای ایجاد و بازیابی Snapshot از سیستم عامل لینوکس است. این ابزار به ویژه برای بازگرداندن سیستم به حالت قبلی در صورت بروز مشکل پس از نصب نرمافزار جدید، بهروزرسانی سیستم یا تغییر تنظیمات، بسیار مفید است. Timeshift از دو روش برای ایجاد Snapshot استفاده میکند: RSYNC و BTRFS. در این توضیح، بر روی روش RSYNC تمرکز میکنیم که رایجتر و با اکثر سیستمها سازگارتر است. توجه داشته باشید که این ابزار بر روی رابط کاربری گرافیکی اجرا میشود.
نصب Timeshift
ابتدا باید Timeshift را بر روی سیستم خود نصب کنید. دستور نصب بسته به توزیع لینوکس شما متفاوت است:
در توزیعهای مبتنی بر دبیان (مانند اوبونتو، مینت و دبیان):
sudo apt update
sudo apt install timeshift
در توزیعهای مبتنی بر آرچ (مانند آرچ لینوکس و مانجارو):
sudo pacman -S timeshift
در توزیعهای مبتنی بر ردهت (مانند فدورا و سنتاواس):
ابتدا باید مخزن EPEL را فعال کنید و سپس Timeshift را نصب کنید (این روش ممکن است در برخی نسخهها متفاوت باشد و نیازمند بررسی بیشتر باشد):
sudo dnf install epel-release
sudo dnf install timeshift
راهاندازی Timeshift
پس از نصب، Timeshift را اجرا کنید. پنجرهای باز میشود که شما را در مراحل پیکربندی اولیه راهنمایی میکند:
-
نوع Snapshot: در ابتدا، باید نوع Snapshot را انتخاب کنید. دو گزینه وجود دارد:
-
RSYNC: این روش از ابزار rsync برای ایجاد Snapshot استفاده میکند و با اکثر سیستمها سازگار است. این روش توصیه میشود.
-
BTRFS: این روش فقط در سیستمهایی که از سیستم فایل BTRFS استفاده میکنند، قابل استفاده است و عملکرد بهتری دارد.
-
محل ذخیرهسازی Snapshotها: در این مرحله، باید مکانی را برای ذخیره Snapshotها انتخاب کنید. توصیه میشود که این مکان یک پارتیشن جداگانه یا یک درایو خارجی باشد تا در صورت بروز مشکل برای سیستم اصلی، Snapshotها در دسترس باشند. از ذخیره Snapshotها در پارتیشن سیستم اصلی خودداری کنید.
-
انتخاب سطح Snapshot: ابزار Timeshift به شما امکان میدهد که فقط از فایلهای سیستم یا از تمام فایلها (شامل فایلهای کاربر) Snapshot تهیه کنید. معمولاً انتخاب گزینه "System Files" کافی است، زیرا فایلهای کاربر معمولاً در پارتیشن جداگانهای ذخیره میشوند.
-
برنامه زمانبندی: در این مرحله، میتوانید یک برنامه زمانبندی برای ایجاد خودکار Snapshotها تعیین کنید. میتوانید Snapshotها را به صورت ساعتی، روزانه، هفتگی یا ماهانه ایجاد کنید. همچنین میتوانید تنظیم کنید که Snapshotها در هنگام بوت سیستم نیز ایجاد شوند.
ایجاد Snapshot دستی
برای ایجاد یک Snapshot دستی، مراحل زیر را دنبال کنید:
-
Timeshift را اجرا کنید.
-
بر روی دکمه "Create" کلیک کنید.
-
یک توضیح اختیاری برای Snapshot خود بنویسید (مثلاً "قبل از نصب نرمافزار X").
-
بر روی دکمه "OK" کلیک کنید.
-
Timeshift شروع به ایجاد Snapshot میکند. این فرآیند ممکن است مدتی طول بکشد، بسته به حجم فایلهای سیستم شما.
بازیابی Snapshot
برای بازیابی یک Snapshot، مراحل زیر را دنبال کنید:
-
Timeshift را اجرا کنید.
-
Snapshot مورد نظر خود را از لیست انتخاب کنید.
-
بر روی دکمه "Restore" کلیک کنید.
-
Timeshift از شما میپرسد که آیا میخواهید تنظیمات GRUB را نیز بهروزرسانی کند. معمولاً پاسخ مثبت به این سوال توصیه میشود.
-
سیستم شما ریبوت میشود و فرآیند بازیابی آغاز میشود.
نکات مهم:
-
قبل از انجام هرگونه تغییر مهم در سیستم خود، یک Snapshot ایجاد کنید.
-
به طور منظم Snapshotها را بررسی کنید و Snapshotهای قدیمی را حذف کنید تا فضای ذخیرهسازی شما پر نشود.
-
از ذخیره Snapshotها در پارتیشن سیستم اصلی خودداری کنید.
-
در صورت استفاده از روش RSYNC، Timeshift فقط تغییرات ایجاد شده در فایلها را ذخیره میکند، بنابراین Snapshotهای بعدی فضای کمتری را اشغال میکنند.
5. بکاپ گیری با نرمافزار Bacula
Bacula یک سیستم مدیریت بکاپ متنباز و قدرتمند است که امکانات پیشرفتهای برای پشتیبانگیری، بازیابی و اعتبارسنجی دادهها در شبکههای کامپیوتری فراهم میکند. این ابزار از اجزای مختلفی تشکیل شده که با هم کار میکنند تا یک راهکار جامع برای مدیریت بکاپ ارائه دهند. در ادامه مراحل کلی راهاندازی و استفاده از Bacula برای بکاپگیری در لینوکس را بررسی میکنیم:
آشنایی با اجزای اصلی Bacula
-
Director: هسته اصلی Bacula است که مسئول زمانبندی بکاپها، مدیریت کاتالوگ بکاپها و هماهنگی بین سایر اجزا است.
-
File Daemon (FD): روی سیستمهایی که میخواهید از آنها بکاپ بگیرید نصب میشود و وظیفه جمعآوری و ارسال دادهها به Storage Daemon را بر عهده دارد.
-
Storage Daemon (SD): مسئول دریافت دادهها از File Daemon و ذخیره آنها در رسانه ذخیرهسازی (مانند دیسک، نوار یا فضای ابری) است.
-
Catalog: پایگاه دادهای است که اطلاعات مربوط به بکاپها، فایلها، رسانهها و سایر تنظیمات را ذخیره میکند. معمولاً از MySQL، PostgreSQL یا SQLite برای این منظور استفاده میشود.
-
Console: رابط کاربری برای مدیریت و نظارت بر Bacula است.
نصب Bacula
نصب Bacula پیچیدهتر از ابزارهای سادهتر مانند tar یا rsync است، زیرا شامل نصب و پیکربندی چندین جزء میشود. مراحل نصب بسته به توزیع لینوکس شما متفاوت است. در اینجا یک نمای کلی ارائه میشود (برای جزئیات بیشتر به مستندات رسمی Bacula مراجعه کنید):
نصب اجزا: معمولاً بستههای جداگانهای برای Director، File Daemon، Storage Daemon، Catalog و Console وجود دارد. از مدیر بسته توزیع خود (مانند apt، yum یا dnf) برای نصب این بستهها استفاده کنید. به عنوان مثال در اوبونتو/دبیان:
sudo apt update
sudo apt install bacula-director bacula-fd bacula-sd bacula-console bacula-common bacula-client
نصب و پیکربندی پایگاه داده: یک پایگاه داده (مانند MySQL) را نصب و یک پایگاه داده و کاربر برای Bacula ایجاد کنید.
پیکربندی فایلهای تنظیمات: هر یک از اجزای Bacula فایلهای تنظیمات جداگانهای دارند (معمولاً در /etc/bacula/). باید این فایلها را با توجه به نیازهای خود ویرایش کنید.
مهمترین فایلهای پیکربندی عبارتند از:
-
bacula-dir.conf: تنظیمات Director.
-
bacula-fd.conf: تنظیمات File Daemon.
-
bacula-sd.conf: تنظیمات Storage Daemon.
-
bconsole.conf: تنظیمات Console.
پیکربندی Bacula (مراحل اصلی): پیکربندی Bacula شامل مراحل زیر است:
-
تعریف Client: در فایل bacula-dir.conf، یک Client برای هر سیستمی که میخواهید از آن بکاپ بگیرید تعریف کنید.
-
تعریف FileSet: مجموعهای از فایلها و دایرکتوریهایی که باید بکاپ گرفته شوند را در یک FileSet تعریف کنید.
-
تعریف Job: یک Job برای اجرای بکاپ با استفاده از Client و FileSet تعریف کنید.
-
تعریف Schedule: یک Schedule برای زمانبندی اجرای Job تعریف کنید.
-
تعریف Storage: محل ذخیرهسازی بکاپها را در Storage Daemon پیکربندی کنید.
-
تعریف Pool: دستهبندی رسانههای ذخیرهسازی را در Pool تعریف کنید.
در اینجا یک مثال بسیار ساده از پیکربندی bacula-dir.conf برای تعریف یک Client و یک Job آورده شده است:
Client {
Name = MyClient
Address = client_ip_address
FDPort = 9102
File Retention = 30 days
Job Retention = 60 days
AutoPrune = yes
}
Job {
Name = MyBackupJob
Client = MyClient
FileSet = FullSet
JobType = Backup
Level = Full
Storage = FileStorage
Pool = Default
Schedule = WeeklyCycle
Priority = 10
}
استفاده از Console
پس از پیکربندی، میتوانید از Console برای مدیریت و نظارت بر Bacula استفاده کنید. برای اجرای Console، دستور bconsole را اجرا کنید. سپس میتوانید از دستورات مختلف برای مشاهده وضعیت بکاپها، اجرای دستی بکاپها، بازیابی فایلها و غیره استفاده کنید.
مراحل بکاپگیری
به طور خلاصه، روند بکاپگیری با Bacula در 5 مرحله انجام میشود:
-
Director با توجه به Schedule، Job را اجرا میکند.
-
Director با File Daemon مربوط به Client ارتباط برقرار میکند.
-
File Daemon فایلهای مشخص شده در FileSet را به Storage Daemon ارسال میکند.
-
Storage Daemon دادهها را در رسانه ذخیرهسازی مشخص شده در Storage و Pool ذخیره میکند.
-
Director اطلاعات مربوط به بکاپ را در Catalog ثبت میکند.
بازیابی فایلها
برای بازیابی فایلها، از Console استفاده کنید و Job مربوط به بازیابی را اجرا کنید. میتوانید فایلها را به مکان اصلی یا یک مکان دیگر بازیابی کنید.
نکات مهم
- پیکربندی Bacula پیچیده است و نیاز به مطالعه دقیق مستندات دارد.
- امنیت سیستم Bacula و دسترسیها به فایلهای پیکربندی و پایگاه داده را جدی بگیرید.
- به طور منظم بکاپها را تست کنید تا از صحت آنها مطمئن شوید.
- از آخرین نسخه Bacula استفاده کنید تا از آخرین ویژگیها و بهبودهای امنیتی بهرهمند شوید.
6. بکاپ گیری با نرمافزار Amanda
نرمافزار Amanda (Advanced Maryland Automatic Network Disk Archiver) ، یک سیستم پشتیبانگیری متنباز و قدرتمند است که به مدیران سیستم امکان میدهد تا از چندین کامپیوتر در یک شبکه به صورت متمرکز پشتیبان تهیه کنند. Amanda از ابزارهای استاندارد یونیکس مانند tar و dump برای پشتیبانگیری استفاده میکند و میتواند بر روی انواع رسانههای ذخیرهسازی مانند نوار، دیسک و فضای ابری بکاپ بگیرد. Amanda یک ابزار بسیار قدرتمند است، اما پیکربندی آن میتواند برای کاربران مبتدی چالشبرانگیز باشد. توصیه میشود قبل از شروع، مستندات رسمی Amanda را به دقت مطالعه کنید و با پیکربندیهای ساده شروع کنید. همچنین، منابع آنلاین و انجمنهای مربوط به Amanda میتوانند در رفع مشکلات و یادگیری نکات پیشرفتهتر مفید باشند. در ادامه مراحل بکاپگیری با Amanda در لینوکس را به طور کامل توضیح میدهم:
اجزای اصلی Amanda
-
Amanda Server: سرور اصلی که وظایفی مانند زمانبندی بکاپها، مدیریت رسانهها و هماهنگی بین کلاینتها را بر عهده دارد.
-
Amanda Client: روی سیستمهایی که میخواهیم از آنها بکاپ بگیریم نصب میشود و وظیفه ارسال دادهها به سرور را بر عهده دارد.
-
Tape Server (اختیاری): در صورتی که از نوار برای ذخیرهسازی بکاپها استفاده میکنید، یک سرور جداگانه برای مدیریت نوارها میتواند وجود داشته باشد.
نصب Amanda
نصب Amanda بسته به توزیع لینوکس شما متفاوت است. در اینجا مثالهایی برای برخی توزیعها آورده شده است:
در توزیعهای مبتنی بر دبیان Debian (مانند اوبونتو و دبیان):
sudo apt update
sudo apt install amanda-server amanda-client
در توزیعهای مبتنی بر RHEL (مانند CentOS و Fedora): ابتدا باید مخازن EPEL را فعال کنید و سپس Amanda را نصب کنید:
sudo yum install epel-release
sudo yum install amanda-server amanda-client
پیکربندی Amanda
پیکربندی Amanda نسبتاً پیچیده است و شامل ویرایش فایلهای پیکربندی مختلف میشود. مهمترین فایلهای پیکربندی عبارتند از:
-
/etc/amanda/amanda.conf: فایل اصلی پیکربندی Amanda که شامل تنظیمات کلی سیستم است.
-
/etc/amanda/daily.conf: فایل پیکربندی برای بکاپهای روزانه (میتوانید فایلهای پیکربندی دیگری برای بکاپهای هفتگی، ماهانه و غیره ایجاد کنید).
-
/etc/amanda/disklist: لیستی از سیستمهایی که باید از آنها بکاپ گرفته شود و پارتیشنها یا دایرکتوریهایی که باید بکاپ شوند.
مراحل اصلی پیکربندی
-
ایجاد کاربر Amanda: یک کاربر سیستم برای اجرای Amanda ایجاد کنید (معمولاً کاربر amanda).
-
ایجاد دایرکتوریهای لازم: دایرکتوریهایی برای ذخیره بکاپها، فایلهای log و فایلهای موقت ایجاد کنید.
-
ویرایش amanda.conf: تنظیماتی مانند نوع رسانه ذخیرهسازی، اندازه رسانه، مسیر log و غیره را در این فایل پیکربندی کنید.
-
ویرایش daily.conf: در این فایل، تنظیمات مربوط به بکاپهای روزانه مانند نام کلاینتها، پارتیشنها یا دایرکتوریهایی که باید بکاپ شوند، و سطح بکاپ (full یا incremental) را مشخص میکنید.
-
ویرایش disklist: در این فایل، لیستی از سیستمهایی که میخواهید از آنها بکاپ بگیرید و پارتیشنها یا دایرکتوریهایی که باید بکاپ شوند را مشخص میکنید.
مثال پیکربندی disklist: در این مثال، از دایرکتوری /home در سیستم client1 و دایرکتوریهای /etc و /var در سیستم client2 بکاپ گرفته میشود.
client1 /home disk
client2 /etc disk
client2 /var disk
تنظیم کلاینتها
روی هر سیستم کلاینت، باید بسته amanda-client را نصب کنید و فایل /etc/xinetd.d/amanda را پیکربندی کنید تا سرویس amanda فعال شود. همچنین باید مطمئن شوید که کاربر amanda در سرور، دسترسی لازم برای اتصال به کلاینتها را دارد.
اجرای بکاپ
برای اجرای بکاپ، میتوانید از دستور amdump استفاده کنید: این دستور بکاپهای تعریف شده در فایل daily.conf را اجرا میکند.
su amanda
amdump daily
بازیابی بکاپ
برای بازیابی بکاپ، میتوانید از دستور amrecover استفاده کنید. این دستور یک رابط کاربری تعاملی فراهم میکند که به شما امکان میدهد فایلها و دایرکتوریهای مورد نظر خود را از بکاپها انتخاب و بازیابی کنید.
نکات مهم
-
پیکربندی Amanda پیچیده است و نیاز به مطالعه دقیق مستندات دارد.
-
امنیت سیستم Amanda و دسترسیها به فایلهای پیکربندی و رسانههای ذخیرهسازی را جدی بگیرید.
-
به طور منظم بکاپها را تست کنید تا از صحت آنها مطمئن شوید.
-
از ابزارهای مانیتورینگ Amanda مانند amreport برای بررسی وضعیت بکاپها استفاده کنید.
-
Amanda از بکاپهای افزایشی (incremental) پشتیبانی میکند که باعث صرفهجویی در فضای ذخیرهسازی و زمان بکاپگیری میشود.
مراحل بکاپگیری
به طور خلاصه، روند بکاپگیری با Amanda در 6 مرحله انجام میشود:
-
نصب بستههای amanda-server و amanda-client.
-
ایجاد کاربر amanda و دایرکتوریهای لازم.
-
پیکربندی فایلهای amanda.conf، daily.conf و disklist.
-
پیکربندی کلاینتها.
-
اجرای بکاپ با amdump.
-
بازیابی بکاپ با amrecover.
بکاپ گیری از سرور مجازی ویندوز
در سیستم عامل ویندوز، ابزارهای متعددی برای بکاپ گیری توسعه یافته است، اما برای ویندوز سرور پیشنهاد میشود از ابزار داخلی Windows Server Backup استفاده کنید. این ابزار امکان تهیه بکاپ کامل از سرور، فایلها و پوشهها را فراهم میکند. برای استفاده از این ابزار، باید آن را از طریق Server Manager نصب کنید.
سرورهای مجازی یا کارساز شخصی مجازی (VPS) از تقسیم منابع یک سرور اختصاصی (فیزیکی) برای استفاده چندین کاربر به منظور ایجاد چندین سرور مجازی با استفاده از محیط مجازیسازی استفاده میکنند. سرورهای مجازی ویندوز، به عنوان یک نوع از سرورهای مجازی، با سیستمعامل Windows Server ارائه میشوند و امکانات کامل یک سرور ویندوز را به کاربران فراهم میکنند.
سرور مجازی ویندوزنصب Windows Server Backup
نصب این ابزار بسیار ساده است، اما باید مراحل
-
باز کردن Server Manager: از منوی Start، گزینه Server Manager را جستجو و اجرا کنید.
-
اضافه کردن Roles and Features: در پنجره Server Manager، از منوی Manage، گزینه Add Roles and Features را انتخاب کنید.
-
انتخاب Installation Type: گزینه Role-based or feature-based installation را انتخاب و Next را بزنید.
-
انتخاب سرور: سرور مورد نظر خود را انتخاب و Next را بزنید.
-
انتخاب Features: در لیست Features، گزینه Windows Server Backup را تیک بزنید.
-
تایید و نصب: Next را بزنید و در صفحه Confirmation، روی Install کلیک کنید تا نصب آغاز شود. پس از اتمام نصب، روی Close کلیک کنید.
شروع کار با Windows Server Backup
پس از نصب، میتوانید از دو راه این ابزار را اجرا کنید:
-
در پنل Server Manager: در Server Manager، از منوی Tools، گزینه Windows Server Backup را انتخاب کنید.
-
از راه جستجو در منوی Start: در منوی Start، عبارت Windows Server Backup را جستجو و اجرا کنید.
انجام بکاپ (Backup Once)
برای انجام یک بکاپ فوری و خارج از برنامه زمانبندی، مراحل زیر را دنبال کنید:
-
انتخاب Local Backup: در پنجره Windows Server Backup، روی Local Backup در پنل سمت چپ کلیک کنید.
-
انتخاب Backup Once: در پنل Actions سمت راست، گزینه Backup Once را انتخاب کنید.
-
انتخاب گزینههای بکاپ: در صفحه Backup Options، گزینه Different options را انتخاب و Next را بزنید.
-
انتخاب نوع بکاپ: در صفحه Select Backup Configuration، میتوانید بین دو گزینه زیر انتخاب کنید:Full server (recommended): از کل سرور، شامل سیستم عامل، فایلها، برنامهها و تنظیمات بکاپ میگیرد. این گزینه کاملترین نوع بکاپ است.
-
Custom: به شما اجازه میدهد تا اجزای خاصی از سرور را برای بکاپ انتخاب کنید. این گزینه برای مواقعی مناسب است که فقط به بکاپ از بخشهای خاصی مانند فایلها یا System State نیاز دارید.
-
انتخاب مقصد بکاپ: در صفحه Specify Destination Type، مقصد بکاپ را مشخص کنید. میتوانید بکاپ را روی یک هارد دیسک جداگانه، یک Share شبکه یا یک DVD ذخیره کنید.
-
تایید تنظیمات: تنظیمات خود را مرور کنید و در صورت صحت، روی Backup کلیک کنید تا فرآیند بکاپ آغاز شود.
تنظیم بکاپ زمانبندی شده (Backup Schedule)
برای انجام بکاپهای خودکار در زمانهای مشخص، مراحل زیر را دنبال کنید:
-
انتخاب Local Backup: در پنجره Windows Server Backup، روی Local Backup در پنل سمت چپ کلیک کنید.
-
انتخاب Backup Schedule: در پنل Actions سمت راست، گزینه Backup Schedule را انتخاب کنید.
-
شروع ویزارد: در صفحه Get Started، روی Next کلیک کنید.
-
انتخاب نوع بکاپ (مشابه Backup Once): نوع بکاپ (Full server یا Custom) را انتخاب و Next را بزنید.
-
تعیین زمان بکاپ: در صفحه Specify Backup Time، زمان و دفعات بکاپگیری را مشخص کنید. میتوانید بکاپها را روزانه یا هفتگی تنظیم کنید.
-
انتخاب مقصد بکاپ (مشابه Backup Once): مقصد بکاپ را مشخص کنید.
-
تایید تنظیمات: تنظیمات خود را مرور کنید و روی Finish کلیک کنید تا برنامه زمانبندی بکاپ ذخیره شود.
بازیابی بکاپ
برای بازیابی بکاپ، مراحل زیر را دنبال کنید:
-
اجرای Windows Server Backup: ابزار Windows Server Backup را باز کنید.
-
انتخاب Recover: در پنل Actions سمت راست، گزینه Recover را انتخاب کنید.
-
انتخاب محل بکاپ: محل ذخیره بکاپ را مشخص کنید.
-
انتخاب بکاپ: بکاپ مورد نظر خود را از لیست انتخاب کنید.
-
انتخاب نوع بازیابی: نوع بازیابی را مشخص کنید (فایلها و پوشهها، برنامهها، System State یا کل سرور).
-
مشخص کردن مقصد بازیابی: مقصد بازیابی فایلها را مشخص کنید.
-
شروع بازیابی: تنظیمات را بررسی و روی Recover کلیک کنید تا فرآیند بازیابی آغاز شود.
نکات مهم
-
فضای کافی: قبل از شروع بکاپ، مطمئن شوید که فضای کافی در مقصد بکاپ وجود دارد. بکاپ Full server معمولاً فضای زیادی را اشغال میکند.
-
تست بکاپها: پس از انجام بکاپ، حتماً آن را تست کنید تا از صحت آن مطمئن شوید. میتوانید یک فایل را از بکاپ بازیابی کنید تا از عملکرد صحیح آن اطمینان حاصل کنید.
-
بکاپ در مکانهای مختلف: برای افزایش امنیت، بکاپها را در مکانهای مختلف ذخیره کنید. میتوانید از هارد دیسکهای اکسترنال، Shareهای شبکه یا سرویسهای ابری برای این منظور استفاده کنید.
-
بکاپ System State: بکاپ System State شامل تنظیمات سیستم عامل، رجیستری و سایر اطلاعات حیاتی است. این نوع بکاپ برای بازیابی سیستم در صورت خرابی بسیار مهم است.
-
استفاده از PowerShell: میتوانید از دستورات PowerShell برای مدیریت بکاپها استفاده کنید. این روش برای اتوماسیون فرآیند بکاپگیری بسیار مفید است.
نکات مهم در بکاپ گیری
-
بکاپ گیری منظم: برنامه منظمی برای بکاپ گیری داشته باشید. فاصله زمانی بین بکاپها بستگی به میزان تغییرات دادههای شما دارد.
-
ذخیره بکاپ در مکان جداگانه: بکاپها را در مکانی جدا از سرور اصلی، مانند یک هارد اکسترنال، سرور دیگر یا فضای ابری، ذخیره کنید.
-
تست بازیابی: به صورت دورهای بکاپها را تست کنید تا از صحت آنها و امکان بازیابی اطلاعات مطمئن شوید.
-
انتخاب روش مناسب: روش بکاپ گیری را با توجه به نیازها و منابع خود انتخاب کنید.
-
امنیت بکاپها: از بکاپهای خود در برابر دسترسیهای غیرمجاز محافظت کنید.
سخن پایانی
بکاپ گیری از سرور مجازی یک امر ضروری است و نباید به تعویق انداخته شود. با انتخاب روش مناسب و رعایت نکات ذکر شده، میتوانید از اطلاعات خود در برابر هرگونه خطر احتمالی محافظت کنید و از تداوم کسب و کار خود اطمینان حاصل کنید. به یاد داشته باشید که تست دورهای بکاپها برای اطمینان از صحت و کارایی آنها بسیار مهم است. روشهای متعددی برای تهیه نسخه پشتیبان وجود دارد. باید با توجه به شرایط سرور و ابزارهای در دسترس، بهترین روش را انتخاب کنید.
سوالات متداول
چند روش برای تهیه نسخه پشتیبان از سرورمجازی لینوکس وجود دارد؟
rsync (Remote SYNC) آرشیو کردن با ابزار tar بکاپ گیری با روش اسکریپتهای سفارشی Timeshift بکاپ گیری با نرمافزار Bacula بکاپ گیری با نرمافزار Amanda
Backup Once در ویندوز سرور چیست و چگونه انجام میشود؟
این ویژگی در برنامه Windows Server Backup امکان ایجاد نسخه پشتیبان فوری را فراهم میکند. برای این منظور بر روی Local Backup کلیک کنید؛ در پنل Actions ، گزینه Backup Once را انتخاب کنید. در صفحه Backup Options، گزینه Different options را انتخاب و Next را بزنید. در صفحه Select Backup Configuration، میتوانید بین دو گزینه زیر انتخاب کنید:Full server (recommended): از کل سرور یا گزینه Custom برای اجزای خاصی از سرور، انتخاب کنید.
مهمترین نکات حین تهیه نسخه پشتیبان کدام موارد هستند؟
بکاپ گیری منظم، ذخیره بکاپ در مکان جداگانه، تست بازیابی، انتخاب روش مناسب و امنیت بکاپها، مواردی هستند که برای اجرای عملیات بکاپ گیری باید درنظر داشته باشید.
منظور از بکاپ گیری افزایشی چیست؟
در این روش تنها از فایلهایی نسخه پشتیبان گیری میشود که در آنها تغییر ایجاد شده باشد و فایلهای جدیدی باشند که به تازگی به دایرکتوری مدنظر اضافه شده باشند. در این روش عملیات تهیه نسخه پشتیبان با سرعت بسیار بالاتری انجام میشود. برای تهیه نسخه پشتیبان به این روش باید از ابزار rsync استفاده شود.