امروز تصمیم گرفتم برای MySQL سرورها سیستم بکاپ اتوماتیک برای جلوگیری از «از دست رفتن اطلاعات» یا «نجات اطلاعات در برابر هکر های عزیز» راه بندازم.
اول از همه استفاده از سرویس گوگل درایو به ذهنم رسید که خداروشکر بخاطر تحریم نمیشه ازش استفاده کرد و باید به موازین ملی پایبند بود. اینجا یخورده کارم سخت شد و چون از قبل رو سرورمون NAS سینولوژی داشتیم گفتم خب بزار از اون استفاده کنم، و چون از rsync استفاده میکردم که روی پروتکل Secure Shell (AKA SSH) هست نمیشد این کار رو از راه معمولیش اتوماتیک کرد. (به این دلیل که هربار موقع آپلود فایل پسورد رو باید دستی وارد کرد)، معمولا تو این مواقع SSH Key ها به کارمون میان و درواقع توی این آموزش قراره بهتون توضیح بدم که چجوری این کلید هارو روی NAS خودمون راه بندازیم:
اول از همه این دوتا نکته رو توی ذهنتون داشته باشین:
مرحله اول اینه که بریم تنظیمات ورود با استفاده از کلید عمومی (public key) رو فعال کنیم:
اول مطمئن بشید که سرویس SSH روی سرورتون روشنه، برای اینکار باید به مسیر
Control panel > Terminal & SNMP
برید و سرویس SSH رو روشن کنید.
اگه از قبل اکانتی که توی گروه ادمین ها باشه ندارید باید یدونه بسازیم. توی این آموزش از اسم foaly استفاده میکنیم و داخل مسیر
Control panel > User > foaly > Edit > User groups
اون رو به صورت موقت داخل گروه ادمین ها اون رو قرار میدیم.
به SSH ،NAS میزنیم و برای گرفتن دسترسی root دستور
sudo su
رو تایپ میکنیم.
با دستور
vim /etc/ssh/sshd_config
فایل کانفیگ SSH باز میشه، داخلش دوتا خط PubkeyAuthentication yes و AuthorizedKeysFile .ssh/authorized_keys
رو از کامنت درمیاریم، حواستون باشه به چیز دیگه ای دست نزنین و گرنه ممکنه برای همیشه دسترسی SSH رو از دست بدین!
بعد از این مرحله سرویس SSH رو از داخل پنل وب NAS یه بار خاموش و روشن میکنیم.
اگه کاربری رو برای این کار داخل گروه ادمین ها گذاشتین الان میتونین از این گروه خارجش کنین.
حالا احراز هویت با کلید عمومی (Public key) فعال شده، الآن باید کلید هارو داخل NAS و کلاینت مون قرار بدیم تا بدون پسورد کارمون انجام بشه (فرض میکنیم کلاینتمون میخواد خودشو با یوزر backup احراز کنه)
کاربر backup رو توی گروه ادمین ها قرار میدیم
به کلاینتمون وصل میشیم و یک کلید میسازیم (اگه از قبل ندارین):
ssh-keygen -t rsa
کلیدی که ساختیم رو روی NAS کپی میکنیم (اینجا ازتون پسورد اکانت backup رو میخواد) :
ssh-copy-id backup@[nas-ip]
و این بخش مهمه که به NAS وصل بشیم و دستورات زیر رو تایپ کنیم
chmod 0711 ~
chmod 0711 ~/.ssh
chmod 0600 ~/.ssh/authorized_keys
الان دیگه باید احراز هویت ـمون کار کنه، برای تست
ssh backup@nas-ip
رو تایپ میکنیم و نباید پسورد بخواد
و یادمون نره که یوزر backup رو اگه لازم نداریم از گروه ادمین ها خارج کنیم
برای فرستادن بکاپ ها به NAS هم میتونین کارهای زیر رو انجام بدین:
Control panel > File Services > rsync > Enable rsync service
و در نهایت از دستور
rsync -az /var/www backup@[nas-ip]:/volume1/Backups/
میتونین برای ارسال بکاپ ها استفاده کنین
این هم یه دستور پیچیده برای انجام یه کار تمیزتر:
rsync -az -e "ssh -p 23342" --backup --backup-dir="rsync_bak_`date '+%F_%H-%M'`" --exclude 'tmp*' --exclude 'cache*' --exclude 'logs' /var/www backup@[nas-ip]:/volume1/Backups/
توضیحات برای دستور بالا:
منبع:
(اگه به مشکل برخوردید به نظرم یه نگاهی به کامنت های پست اصلی بندازید ? و اگر جوابی پیدا نکردین همینجا کامنت بزارین امیدوارم که بتونم کمکتون کنم)