سیستم عامل لینوکسمقالات وب
چگونه بک آپ سرور را به کمک Rsnapshot راه اندازی کنیم؟
همانطور که می دانید Rsnapshot یک برنامه کمکی اسنپ شات فایل سیستم بر اساس rsync برای سیستم عامل های یونیکس مانند است. این گزینه به شما اجازه می دهد به راحتی اسنپ شات های دوره ای از ماشین لوکال خود به دست آورید و از طریق SSH هم از ماشین های ریموت خود اسنپ شاتی ایجاد کنید. از آنجایی که rsnapshot تنها تعداد ثابتی از اسنپ شات ها را در خود نگه می دارد مقدار فضای دیسکی که مورد استفاده قرار می گیرد به طور مستمر رشد نخواهد کرد. این یک برنامه کاملا رایگان و متن باز است و به شما کمک می کند بک آپ های متعددی از سیستم خود تهیه کنید. این برنامه کمکی به زبان perl نوشته شده و بر روی سیستم عامل های یونیکس مانند کار می کند. در این مقاله سعی می کنیم نحوه راه اندازی بک آپ سرور به کمک rsnapshot در لینوکس را با هم مرور کنیم. پس همراه وب ایده باشید.
راه اندازی بک آپ سرور در لینوکس به کمک rsnapshot:
ما برای این مقاله از دو سیستم استفاده خواهیم کرد. یکی از آن ها سرور بک آپ است که در خود، سیستم عامل سنت او اس 7 را دارد و دیگری به عنوان سیستم کلاینت عمل می کند. سیستم عامل موجود بر روی کلاینت آرچ لینوکس است. جزییات این سرورها را در ادامه مشاهده می کنید.
سرور بک آپ:
- سیستم عامل: سنت او اس 7، 64 بیتی
- ای پی آدرس: 192.168.43.150/24
سیستم کلاینت:
- سیستم عامل: آرچ لینوکس
- آی پی آدرس: 192.168.43.192/24
نصب و راه اندازی:
Rsnapshot در مخزن پیش فرض سنت او اس وجود ندارد. باید مخزن EPEL را فعال کنید تا بتوانید این گزینه را نصب نمایید:
sudo yum install epel-release
سپس Rsnapshot را به کمک دستور زیر نصب نمایید:
sudo yum install rsnapshot rsync
در آرک لینوکس و مشتقات آن، این گزینه به صورت پیش فرض در مخزن وجود دارد. پس شما می توانید آن را به کمک پکیج منیجر همانند دستور زیر نصب کنید:
sudo pacman -S rsnapshot rsync
اگر می خواهید از سیستم های مبتنی بر DEB همچون اوبونتو استفاده کنید Rsnapshot را به کمک دستور زیر نصب کنید:
sudo apt-get install rsnapshot rsync
پیکربندی سرور بک آپ:
ما باید دایرکتوری روت برای بک آپ ایجاد کنیم تا بتوانیم همه بک آپ های سرور و کلاینت را ذخیره نماییم. در این بخش ما از /rsnapbackup/ به عنوان دایرکتوری روت بک آپ استفاده می کنیم. اینجا موقعیتی است که همه بک آپ ها در آن ذخیره خواهد شد . شما می توانید موقعیت خودتان را تعریف نمایید. خوب اجازه دهید این دایرکتوری را بر روی سرور بک اپ ایجاد کنیم:
sudo mkdir /rsnapbackup/
برای بک آپ گرفتن از فایل های سیستم ریموت باید تایید هویت SSH را برای کلاینت ریموت ایجاد کنیم تا rsnapshot بتواند به صورت خودکار به این سیستم وصل شود. در ابتدا باید SSH key pair را ایجاد کنیم:
ssh-keygen -t rsa
هیچ passphrase ای وارد نکنید زیرا می خواهیم این سیستم بتواند به هر کلاینت دیگری بدون نیاز به پسورد وصل شود:
Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: ef:27:2a:3d:39:37:af:5e:36:05:10:b2:86:38:7f:e5 root@server.ostechnix.local The key's randomart image is: +--[ RSA 2048]----+ | . o. | | . . o . | | o . o . . | | o . o . | | . S E . | | . . . | | . .. + | | . =.+o.. | | ..*+*. | +-----------------+
در مرحله بعدی باید SSH public key را به همه سیستم های کلاینت ریموت خود کپی کنید:
$ ssh-copy-id -i /root/.ssh/id_rsa.pub sk@192.168.43.192
خروجی نمونه:
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys sk@192.168.43.192's password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'sk@192.168.43.192'" and check to make sure that only the key(s) you wanted were added.
در این جا 192.168.43.19 ای پی آدرس سیستم کلاینت ریموت ماست. شما باید این دستورات بالا را تکرار کنید تا بتوانید ssh public key را به همه سیستم های کلاینت خود کپی کنید .
حالا باید سرور بک آپ خود را پیکربندی کنیم. لطفا توجه داشته باشید که باید در انتهای نام دایرکتوری در فایل /etc/rsnapshot.conf اسلش را مشخص نمایید. به عنوان مثال باید نام دایرکتوری را به صورت /rsnapbackup/ مشخص نمایید همچنین بین عناصر/ فیلدها به تب ( نه فاصله) نیاز خواهید داشت.
پیکربندی پیش فرض Rsnapshot در /etc/rsnapshot.conf قرار دارد. توصیه می شود از فایل پیکربندی پیش فرض بک آپ بگیرید:
cp /etc/rsnapshot.conf /etc/rsnapshot.conf.bak
حالا فایل پیکربندی این برنامه را به کمک دستور زیر ویرایش کنید:
sudo nano /etc/rsnapshot.conf
پیکربندی اولیه و پیش فرض باید به خوبی کار کند. تنها کاری که شما باید انجام دهید تعریف دایرکتوری های بک آپ و دوره ها و فواصل زمانی بک آپ گیری است. در ابتدا یک دایرکتوری روت برای بک آپ تعریف می کنیم. باید دایرکتوری را انتخاب کنیم که می خواهیم بک آپ ها را در آن ذخیره نماییم. ما بک آپ ها را در دایرکتوری /rsnapbackup/ ذخیره خواهیم کرد.
# All snapshots will be stored under this root directory. # snapshot_root /rsnapbackup/
باز هم باید از کلید تب(TAB) بین عناصر snapshot_root و دایرکتوری بک آپ استفاده کنید. مطمئن شوید خط زیر uncomment شده است:
[...] ################################# # EXTERNAL PROGRAM DEPENDENCIES # ################################# # LINUX USERS: Be sure to uncomment "cmd_cp". This gives you extra features. # EVERYONE ELSE: Leave "cmd_cp" commented out for compatibility. # # See the README file or the man page for more details. # cmd_cp /usr/bin/cp # uncomment this to use the rm program instead of the built-in perl routine. # cmd_rm /usr/bin/rm # rsync must be enabled for anything to work. This is the only command that # must be enabled. # cmd_rsync /usr/bin/rsync # Uncomment this to enable remote ssh backups over rsync. # cmd_ssh /usr/bin/ssh # Comment this out to disable syslog support. # cmd_logger /usr/bin/logger # Uncomment this to specify the path to "du" for disk usage checks. # If you have an older version of "du", you may also want to check the # "du_args" parameter below. # cmd_du /usr/bin/du [...]
حالا باید فواصل زمانی بک آپ گیری را تعریف کنیم:
######################################### # BACKUP LEVELS / INTERVALS # # Must be unique and in ascending order # # e.g. alpha, beta, gamma, etc. # ######################################### retain alpha 6 retain beta 7 retain gamma 4 #retain delta 3
در این دستورات عبارت retain alpha 6 بدین معنی است که هر بار rsnapshot alpha اجرا می شود، یک اسنپ شات جدید ایجاد خواهد کرد، مورد قدیمی را خواهد چرخاند و شش مورد اخیر را نگه خواهد داشت. شما می توانید فواصل زمانی مدنظر خود را تعریف کنید. حالا باید دایرکتوری بک آپ را تعریف کنیم. دایرکتیو زیر را در فایل پیکربندی rsnapshot بیابید و موقعیت دایرکتوری بک آپ را تنظیم نمایید:
############################### ### BACKUP POINTS / SCRIPTS ### ############################### # LOCALHOST backup /root/ostechnix/ server/
در این بخش ما سعی می کنیم محتوای دایرکتوری /root/ostechnix/ را بک آپ گیری کنیم و آن را در دایرکتوری /rsnapbackup/server/ خیره نماییم. لطفا توجه داشته باشید که ما مسیر کامل را در پیکربندی بالا مشخص نکردیم زیرا قبلا به دایرکتوری بک آپ روت اشاره کرده بودیم. موقعیت بک آپ سیستم کلاینت ریموت را هم باید تعریف کنیم:
# REMOTEHOST backup sk@192.168.43.192:/home/sk/test/ client/
در اینجا می خواهیم محتوای دایرکتوری/home/sk/test/ سیستم ریموت را بک آپ گیری کنیم و آن را در دایرکتوری /rsnapbackup/client/ سرور بک آپ ذخیره نماییم.
باز هم توجه داشته باشید که ما مسیر کامل را در فایل پیکربندی بالا مشخص نکردیم.
بعد از اینکه همه تغییرات را ایجاد کردید دستور زیر را اجرا کنید تا مطمئن شوید فایل config از لحاظ دستوری نیز معتبر است.
rsnapshot configtest
اگر همه چیز به درستی به پیش برود، خروجی زیر را خواهید داشت:
Syntax OK
تست بک آپ:
دستور زیر را اجرا کنید تا همه بک آپ ها را تست نمایید:
rsnapshot alpha
اینکار بسته به اندازه بک آپ هایی که دارید ممکن است چند دقیقه زمان ببرد.
تایید بک آپ ها:
ببینید بک آپ ها واقعا در دایرکتوری روت تعریف شده ذخیره می شوند یا خیر.
ls /rsnapbackup/
خروجی زیر را مشاهده خواهید کرد:
alpha.0
دایرکتوری alpha.0 را بررسی کنید:
ls /rsnapbackup/alpha.0/
مشاهده خواهید کرد که دو دایرکتوری به صورت خودکار ایجاد شده است. یکی از آن ها سرور بک آپ لوکال و دیگری برای سیستم ریموت است:
client/ server/
بک آپ های سیستم کلاینت را بررسی کنید:
ls /rsnapbackup/alpha.0/client
بک آپ های سیستم سرور را بررسی کنید:
ls /rsnapbackup/alpha.0/server
خودکارسازی بک آپ ها:
شما نمی توانید هر بار که نیاز به بک آپ دارید دستورات این برنامه را اجرا کنید. به همین خاطر باید یک cron job ایجاد کنید و کار بک آپ گیری را خودکار نمایید:
sudo vi /etc/cron.d/rsnapshot
خطوط زیر را بدان اضافه کنید:
0 */4 * * * /usr/bin/rsnapshot alpha 50 23 * * * /usr/bin/rsnapshot beta 00 22 1 * * /usr/bin/rsnapshot delta
خوب حالا Rsnapshot به صورت خودکار بر اساس زمان تعریف شده در cron job کار بک آپ گیری را انجام خواهد داد.