بک آپ گیری اتوماتیک از سرور با BackBlaze و rclone

BackBlaze سرور اشتراکی فایل
BackBlaze سرور اشتراکی فایل


یکی از موضوعاتی که یک بار پیش بیاد برای یک عمر کافیه، از دست دادن اطلاعات هست. حالا از اون بدتر اطلاعات مشتری یا اطلاعات سرور و دیتابیس ها

تو این نوشته میخوام براتون در مورد این بنویسم که چطور میشه با استفاده از چند سرویس رایگان و راحت به صورت کامل از اطلاعات سرورهاتون بک اپ تهیه کنید.

برای این کار از چند سرویس خیلی خوب استفاده میکنم:

1: سایت بک بلیز برای فضای کلود ذخیره سازی ( 10 گیگ رایگان )

2: نرم افزار rclone برای سینک کردن

3: کرون جاب برای دستورات اتوماتیک

1: ثبت نام در سایت بک بلیز و ساخت باکت

اول از همه به سایت بک بلیز میریم و یک اکانت می سازیم ( از اونجا که برای ایرانی ها تحریم هست حتما مشخصات خارج از کشور درست کنید و حتما با v p n وارد بشین )

https://www.backblaze.com/b2/sign-up.html

اگر در هنگام ثبت نام شماره تلفن خارج از ایران ازتون خواست میتونین از سایت زیر استفاده کنید

https://www.receive-sms-online.info/

بعد از ثبت نام و لاگین در سایت صفحه ای شبیه این رو میبینید:

B2 Cloud Storage
B2 Cloud Storage

حال بر روی گزینه Create a Bucket کلیک کنید

ساخت باکت جدید به صورت Private
ساخت باکت جدید به صورت Private


بعد از ساخت باکت صفحه ای شبیه ای را می بینید
بعد از ساخت باکت صفحه ای شبیه ای را می بینید


2: نصب و راه اندازی rclone

حالا کافیه وارد سرور اصلی خودتون بشین و نرم افزار rclone رو نصب و راه اندازی کنید.

اتصال از طریق ssh به سرور خودتون:

ssh [email protected] -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

خب، امیدوارم این اموزش به کارتون بیاد.

خوشحال میشم هر سوال و نظری داشتید در بخش نظرات بپرسید.