برای بک اپ گیری چند سناریو قابل انجام هست
اما من موردی که خودم انجام دادم به نظرم کاربردی بوده اینجا براتون توضیح میدم
من یه سری فایل های مهم در مورد نرم افزار یک شرکتی که نگهداری می کنم وجود داشت که با توجه به مشکلی که برای آروان اول سال 1400 اتفاق افتاد مهم بود این نگرانی بود که ممکنه دوباره این اتفاق بیفته و همه اطلاعات از بین برود.
من اومدم کاری که انجام دادم یک سرور روی یکی دیتاسنتر دیگه تهیه کردم روش یک cenots راه اندازی کردم.
توی مرحله بعدی اومدم یک اسکریپت با توجه با ساختار rsync درست کردم و کاری کردم که فولدر اطلاعات و فایل های حیاطی در بازه های مشخص با این سرور همگام سازی بشود.
خوبی این دستور این هست که لازم نیست همه ی اطلاعات دوباره دریافت شود و Rsync فولدر بررسی می کند و فایل های تغییر کرده و یا جدید دوباره دریافت می کند .
rsync -avz -e 'ssh -p PORTSSH' root@IPSERVER:/var/www /home/backup
اول مقادیر بالارو توضیح بدم
PORTSSH = به صورت دیفالت مقدار 22 هست و شما می توانید در صورتی که از پورت دیفالت استفاده نمی کنید این مقدار را مشخص نمایید
IPSERVER = ای پی سروری است که شما قصد دریافت اطلاعات از آن را دارید
/var/www = محل فولدری که قصد کپی آن را دارید
/home/backup= محلی که فولدر کپی شده را قرار میدهید.
خوب تا اینجا مورد خاصی نبوده
حالا شما می خواید این موارد به صورت خودکار در بازه های زمانی مشخص انجام شود .
برای این کار باز راه های مختلفی وجود دارد کاری که بنده تست کردم به این صورت بود.
یک فایل bash ساختم و به این صورت نوشتم
#!/usr/bin/expect
rsync -avz -e 'ssh -p PORTSSH' root@IPSERVER:/var/www /home/backup
exit 1
خوب این دستور وقتی اجرا کنید برای ارتباط با سرور promptبرای دریافت پسورد باز می شود و شما مجبور هستید پسورد دستی وارد کنید و به صورت خودکار اجرا نخواهد شد .
برای راه حل این مشکل میتنید sshpass استفاده کنید
برای نصب این پکیج از yum به این صورت عمل می کنید.
yum install sshpass
برای استفاده از این دستور فایل bash ساخته شده به صورت زیر اصلاح می کنیم.
#!/usr/bin/expect
sshpass -p "PASSWORD" rsync -avz -e 'ssh -p PORTSSH' root@IPSERVER:/var/www /home/backup
exit 1
خوب حالا میتونید این طریق این دستور فایل بدون نیاز به پسورد اجرا کنید .
به صورت مثال فایل ما اگر backup-script.sh باشد با دستور
bash backup-script.sh
فایل اجرا کنید
تا اینجا ما تونستیم اسکریپت برای دریافت اطلاعات به درستی انجام بدیم و بسازیم
خوب برای خودکار اجرا شدنش میتونیم از ساختار crontab بر روی سرور Centos استفاده کنیم
با دستور
crontab -e
برای نوشتن دستور مورد نظر باز میشه
در صورتی که فایل مورد نظر شما در فولدر home باشد و اسم فایل bacup-script.sh
دستور به این صورت می شود برای اجرا روزانه ساعت 1 صبح
0 1 * * * /home/backup-script.sh >> backup.logs
با دستور بالا هر روز ساعت 1 صبح این دستور اجرا می شود و خروجی در فولدر backup.logs ذخیره یم کند.
و بعد از وارد کردن این دستور با زدن esc و :wq می تونید از صفحه خارج بشید
شما با این مراحل می توانید روزانه اطلاعات فولدر مورد نظر در سرور بک اپ به روز رسانی کنید
امیدوارم به کارتون بیاد :)