Top Ad unit 728 × 90

Tự động backup dữ liệu lên Google Driver

Tự động backup dữ liệu lên Google Driver - thegioitrithuc.me

Việc backup dữ liệu thường xuyên là một công việc hết sức là quan trọng trong quá trình vận hành hệ thống vì chúng ta có câu "Dữ liệu là tiền tệ" và một vấn đề nữa đặt ra là nếu một ngày đẹp trời nào đó tự nhiên server của các bạn đi vào giấc ngủ ngàn thu hoặc bị hacker tấn công lấy hết dữ liệu thì bạn sẽ lấy lại dữ liệu như thế nào cho nên việc backup dữ liệu thường xuyên là cực kỳ là cần thiết. Thông thường thì công việc backup dữ liệu chúng ta sẽ phải chuẩn bị hai server, một server chứa dự liệu được backup và một server chứa mã nguồn nếu là như vậy thì chi phí vận hành hệ thống sẽ đội lên rất lớn và còn rất nhiều thứ khác nữa như vậy sẽ không phù hợp với những doanh nghiệp nhỏ và startup. Và trong bài này mình sẽ chia sẻ với các bạn một phương án khá hay có thể áp dụng được đối với các doanh nghiệp nhỏ và các startup. Phương án mà mình muốn giới thiệu ở đây là "Backup dữ liệu lên Google Driver", server phụ miễn phí cho chúng ta.




Chắc các bạn cũng biết đến Google Driver của Google là gì rồi đúng không?. Mặc định khi các bạn đăng ký tài khoản gmail thành công bạn đã có ngay 15GB lưu trữ miễn phí cho Gmail, Driver, Photo,..., nếu bạn có nhu cầu thì hoàn toàn có thể mua thêm.
Chắc các bạn đang thắc mắc tại sao mình lại chọn Google Driver đúng không?
Dưới đây là lý do tại sao mà mình lại chọn nó:
  1. Được tặng miễn phí 15GB.
  2. Cho phép upload file với dung lượng tối đa lên tới 1TB tương ứng là 1024GB. Với dung lượng như vậy thì các bạn không phải lo lắng bị google sẽ chặn lưu trữ những file backup của bạn.
Lan man như vậy là OK rồi! Bây giờ chúng ta bắt đầu nhé!
Trước tiên các bạn thực hiện lệnh sau:

pip install --upgrade google-api-python-client

Ghi chú: Một số bạn dùng CentOS có thể gặp lỗi. Vì vậy để không bị lỗi không mong muốn thì các bạn nên cài một số package bằng lệnh sau:
yum install pip # nếu bạn chưa cài pip
yum groupinstall "Additional Development" "Development tools"
yum install libffi-devel
pip install pycrypto
easy_install pyopenssl



1. Tạo Google Project

Tiếp theo các cần vào google console để tạo một project và bật drive API, drive SDK.

Sau khi hoàn tất công việc ở các bước trên thì các bạn vào tab credential và click vào button có nhãn là "Create new Client ID", và ở đấy các bạn chọn client là service account. Hoàn tất thì trình duyệt sẽ tự động tải file private key về máy của bạn, trong trương hợp của mình là file có tên "74214843aee8aba9f11b7825e0a22ef1f06533b7-privatekey.p12", file này chỉ generate 1 lần, nếu các bạn không may làm mất nó thì click vào generate new key.
Bạn cũng sẽ thấy email service account có dạng như: xxx-xx@developer.gserviceaccount.com.

2. Chia sẻ thư mục của bạn cho google service account


Khi bạn đã có email của service account, các bạn vào trang drive của bạn và tạo thư mụcđẻ share cho service account với quyền được ghi, các bạn cũng có thể share thư mục có sẵn. Tuy nhiên khuyên các bạn nên tạo thư mục mới vì công cụ này có phần xóa các file backup cũ.




Giờ tiếp theo là lấy ID của thư mục mà các bạn vừa tạo bằng cách nhấp chuột phải chọn vào chia sẻ cuối cùng là chọn quyền và lấy ID của thư mục. ID của thư mục nằm ngay sau /folders/xxxx

3, Tạo Config file và nơi chứa private key

Tạo file với nội dụng định dạng json như sau:
{

    "service_account":"xxxxxxxx-xxxxx0c9e6eincmu@developer.gserviceaccount.com",
    "private_key12_path":"configs/74214843aee8aba9f11b7825e0a22ef1f06533b7-privatekey.p12",
    "backup_folder_id":"xxxxx",
    "description" : "Description for backup file",
    "max_file_in_folder": 5
}
Các bạn định nghĩa một số thông tin như sau:
  1. Service_account.
  2.  Privat_key12_path (Nơi chứa file mà các bạn tải ở trên).
  3. Backup_folder_id : Nơi các bạn dán ID của folder các bạn vừa lấy ở trên drive
  4. Max_file_in_folder : Là số lượng file tối đa mà được phép lưu trữ trong thư mục trên driver

4. Run code

Các bạn chạy code với cú pháp sau:
 python backup.py path/configs/config_file.json /path/backup_file

Nếu mọi thứ Ok thì file backup sẽ nằm trên folder mà đã được bạn share trên google driver ở trên

5, Sao lưu dữ liệu mysql

Đây là 1 script kết hợp với tool trên để có thể backup dữ liệu mysql tới google drive.
Trong script này bạn khai báo một số thông như sau:
  1. Backup Folder
  2. Backup Code
  3. DBname
  4. DB user
  5. DB Password.

tool này sẽ dump dữ liệu mysql của các bạn ra file sql và nén lại thành tar.gz và gửi lên google drive.

BACKUP_DIR="/your/backup/folder"
BACKUP_CODE="/backup/code/folder"
#Sql file name with year-month-date-hour-minute
NAME=`date +%Y%m%d-%H%M`
SQLFILE=$NAME'.sql'
ZNAME=$NAME'.tar.gz'

FILE_PATH=$BACKUP_DIR'/'$ZNAME

DBNAME='your_db_name'
DBUSER='mysql_user'
DBPASSWORD='mysql_password'
echo "Dumping DB name=$DBNAME"
#Create backup folder if folder is not existing
mkdir -p $BACKUP_DIR
cd $BACKUP_DIR
#Dump sql file to $SQLFILE
mysqldump -u $DBUSER -p $DBNAME --password=$DBPASSWORD --skip-lock-tables --force >$SQLFILE
#Zip sql file
tar -zcvf $ZNAME $SQLFILE
#Remove sql file
rm -f $SQLFILE
#Cd to backup code folder
cd $BACKUP_CODE
echo "UPloading to google drive"
#UPload backup file to google drive
python backup.py configs/your_config.json $FILE_PATH
#Remove backup file since file is uploaded to google drive
rm -f $FILE_PATH
echo "Done"
 sử dụng:
bash backup_mysql.sh 

 6. Thiết lập thời gian backup tự động

Các bạn dùng crontab để thiết lập và thêm dòng bên dưới vào.
mm hh *** bash /my/backup/repository/backup_mysql.sh
Tùy vào trương hợp của bạn mà nhập /my/backup/repository/backup_mysql.sh cho thích hợp và nhớ chỉnh mm, hh cho thích hợp nhé!




Vậy là mình đã hướng dẫn cho các bạn hoàn tất về phương pháp backup dữ liệu lên Google Drive. Hãy share cho mọi người nếu thấy bài viết hay!

Chúc các bạn thành công!
Tự động backup dữ liệu lên Google Driver Reviewed by Thế Giới Tri Thức on tháng 3 20, 2018 Rating: 5

Không có nhận xét nào:

All Rights Reserved by THẾ GIỚI TRI THỨC © 2018
Thiết kế bởi: THẾ GIỚI TRI THỨC

Biểu mẫu liên hệ

Tên

Email *

Thông báo *

Được tạo bởi Blogger.