یکی از موضوعاتی که یک بار پیش بیاد برای یک عمر کافیه، از دست دادن اطلاعات هست. حالا از اون بدتر اطلاعات مشتری یا اطلاعات سرور و دیتابیس ها
تو این نوشته میخوام براتون در مورد این بنویسم که چطور میشه با استفاده از چند سرویس رایگان و راحت به صورت کامل از اطلاعات سرورهاتون بک اپ تهیه کنید.
برای این کار از چند سرویس خیلی خوب استفاده میکنم:
1: سایت بک بلیز برای فضای کلود ذخیره سازی ( 10 گیگ رایگان )
2: نرم افزار rclone برای سینک کردن
3: کرون جاب برای دستورات اتوماتیک
1: ثبت نام در سایت بک بلیز و ساخت باکت
اول از همه به سایت بک بلیز میریم و یک اکانت می سازیم ( از اونجا که برای ایرانی ها تحریم هست حتما مشخصات خارج از کشور درست کنید و حتما با v p n وارد بشین )
https://www.backblaze.com/b2/sign-up.html
اگر در هنگام ثبت نام شماره تلفن خارج از ایران ازتون خواست میتونین از سایت زیر استفاده کنید
https://www.receive-sms-online.info/
بعد از ثبت نام و لاگین در سایت صفحه ای شبیه این رو میبینید:
حال بر روی گزینه Create a Bucket کلیک کنید
2: نصب و راه اندازی rclone
حالا کافیه وارد سرور اصلی خودتون بشین و نرم افزار rclone رو نصب و راه اندازی کنید.
اتصال از طریق ssh به سرور خودتون:
ssh root@yourserverdomain -p sshportnumber
حالا نرم افزار rclone را برای سیستم عامل مورد نظر خودتون از لینک زیر دانلود کنید:
https://rclone.org/downloads/
آموزش کامل نصب را میتونید از لینک زیر دنبال کنید:
https://rclone.org/install/
برای مثال من نسخه لینوکس AMD 64 را برای سرور cenots 6.9 خودم دانلود کردم و بعد نصبش کردم:
curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip unzip rclone-current-linux-amd64.zip cd rclone-*-linux-amd64
کپی کردن فایلهای باینری
sudo cp rclone /usr/bin/ sudo chown root:root /usr/bin/rclone sudo chmod 755 /usr/bin/rclone
نصب فایهای راهنما
sudo mkdir -p /usr/local/share/man/man1 sudo cp rclone.1 /usr/local/share/man/man1/ sudo mandb
حالا برای نصب تنظیمات دستور زیر را وارد کنید:
rclone config
No remotes found - make a new one n) New remote q) Quit config n/q> n name> remote #اسمی براش انتخاب کنید. مثلا من اسم را خود ریموت گذاشتم Type of storage to configure. Choose a number from below, or type in your own value 1 / Amazon Drive \ "amazon cloud drive" 2 / Amazon S3 (also Dreamhost, Ceph, Minio) \ "s3" 3 / Backblaze B2 \ "b2" 4 / Dropbox \ "dropbox" 5 / Encrypt/Decrypt a remote \ "crypt" 6 / Google Cloud Storage (this is not Google Drive) \ "google cloud storage" 7 / Google Drive \ "drive" 8 / Hubic \ "hubic" 9 / Local Disk \ "local" 10 / Microsoft OneDrive \ "onedrive" 11 / Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH) \ "swift" 12 / SSH/SFTP Connection \ "sftp" 13 / Yandex Disk \ "yandex" Storage> 3 #انتخاب گزینه 3 یعنی بک بلیز Account ID #اینجا باید اکانت ای دی بک بلیز خودتون رو وارد کنید account> 123456789abc Application Key #اینجا باید اپلیکشن کی بک بلیز خودتون رو وارد کنید key> 0123456789abcdef0123456789abcdef0123456789 Endpoint for the service - leave blank normally. endpoint> Remote config -------------------- [remote] account = 123456789abc key = 0123456789abcdef0123456789abcdef0123456789 endpoint = -------------------- y) Yes this is OK e) Edit this remote d) Delete this remote y/e/d> y #ذخیره تنظیمات
برای دریافت application id و account id باید به بک بلیز برین و صفحه اول قسمت باکت ها گزینه ای وجود داره به نام
Show Account ID and Application Key
خوب حالا شما rclone رو روی سرور خودتون نصب کردین و به بک بلیز خودتون وصل کردین.
فقط میمونه سینک کردن و کرون تعریف کردن برای اینکه همیشه اینکار انجام بشه
3: سینک فایلها از سرور به بک بلیز
حالا با دستور زیر میتونین فایل های سرور خودتون رو سینک کنید:
rclone sync /home/amirgilan/public_html/ remote:amirgilan --verbose > /var/log/rclone.log 2>&1
در حین ترنسفر میتونین سرعت انتقال رو با دستور nload چک کنید:
sudo yum install nload
nload -i 100000 -o 100000
تعریف cron job برای اینکه به صورت اتومات این فرایند انجام شود:
0 3 1,15 * * rclone sync /home/amirgilan/public_html/ remote:amirgilan --verbose > /var/log/rclone.log 2>&1
دستور فوق می گوید 1ام و 15 هم هر ماه ساعت 3 صبح سینک کن فایل های سرور در پوشه home/amirgilan را با بلک بلیز remote در باکت amirgilan
انجام اتوماتیک سینک کردن
این کرون می تونید در سرور خودتون در خط اخر این فایل اضافه کنید:
sudo su -
crontab -e
برای ساخت کرن تب های دیگه میتونین از سایت زیر کمک بگیرین
https://crontab-generator.org/
یا اگر از Cpanel استفاده میکنید در بخش advance گزینه ای به نام کرن جاب دارد
بک اپ گیری دیتابیس با mysqldump
cd /home/amirgilan/public_html/
mkdir dB
حالا اگر از mysql استفاده میکنید توصیه میکنم برای دیتابیس خودتون از کرن زیر هم برای بک اپگیری استفاده کنید:
mysqldump database_db > /home/amirgilan/public_html/dB/backup.sql
برای این کار نیاز هست یک فایل هم در سرور خودتون ایجاد کنید و یوزر پسورد دیتابیس خودتون رو بنویسید
برای مثال من این فایل را ساختم
touch .my.cnf nano .my.cnf
[client]
user = database_username
password = "database_password"
host = localhost
خب، امیدوارم این اموزش به کارتون بیاد.
خوشحال میشم هر سوال و نظری داشتید در بخش نظرات بپرسید.