Tự động Backup và Upload lên Google Drive

Linux Tutorials VPS

Sao lưu dữ liệu trên máy chủ là công việc rất quan trọng để đảm bảo an toàn dữ liệu. Ví dụ việc sao lưu dữ liệu Website sẽ giúp các bạn phục hồi website nhanh chóng khi có sự cố xảy ra.
Bài viết này sẽ hướng dẫn các bạn tạo script tự động sao lưu dữ liệu Website (source, database, web server config file) lên Google Drive.

Cài đặt Rclone

Rclone là công cụ giúp đồng bộ hóa dữ liệu có khả năng kết nối với các dịch vụ lưu trữ đám mây. Điều này đảm bảo cho dữ liệu được an toàn và tốc độ sao lưu cực nhanh.

Rclone hiện tại hỗ trợ kết nối tới rất nhiều dịch vụ lưu trữ như:

  • Amazon Drive
  • Amazon S3
  • DigitalOcean Spaces
  • Dropbox
  • Google Cloud Storage
  • Google Drive
  • Mega
  • Microsoft Azure Blob Storage
  • Microsoft OneDrive
  • Và các dịch vụ khác được liệt kê ở đây 

Bài viết này sẽ hướng dẫn kết nối Rclone với Google Drive, các dịch vụ khác hẹn các bạn ở những bài viết tiếp theo nhé.

Các bạn cài đặt Rclone theo các bước sau:

Dùng lệnh rclone để kiểm tra, ví dụ:

Tạo kết nối từ server đến Google Cloud

Kết nối đến server qua SSH và sử dụng lệnh:

Sau đó tương ứng với mỗi thông báo thì bạn cấu hình như sau:

No remotes found – make a new one Nhập n -> Enter

name> Bạn nhập tên kết nối. vd: upload_google_drive -> Enter

Choose a number from below, or type in your own value
<Danh sách Cloud Server>
Storage>  Chọn 11 để kết nối đến Google Drive -> Enter

client_id = Để trống -> Enter
client_secret = Để trống -> Enter

Scope that rclone should use when requesting access from drive. Chọn 1 – Full access all files… -> Enter

root_folder_id = Để trống -> Enter
service_account_file = Để trống -> Enter

Use auto config? Chọn n -> Enter

If your browser doesn’t open automatically go to the following link: https://accounts.google.com/o/oauth2/auth?access_type=offline&client_id=xxxxxxx

Bạn copy link trên, mở bằng trình duyệt, sau đó đăng nhập bằng user google drive -> Chọn Allow/Đồng Ý để cấp quyền truy cập. Sau đó copy dòng Code hiện ra.

Enter verification code> Dán dòng code đã copy ở trình duyệt vào đây -> Enter

Configure this as a team drive? Chọn n -> Enter

Sau đó Chọn y để đồng ý và q để thoát.

Sau khi cấu hình xong sử dụng lệnh sau để kiểm tra:

Script tự động backup và upload lên google drive

Tạo file backup.py bằng lệnh:

Script dưới đây mình viết bằng python nên vps phải đc cài python mới chạy nhé, mặc định thì python cũng được cài sẵn rồi nên các bạn yên tâm.

Nếu thiếu zip thì cài thêm bằng câu lệnh sau:

Nội dụng script:

Lưu ý: Script trên mình để web source ở /home/www , thư mục backup ở /home/backup. Các bạn nhớ sửa lại phù hợp với server của mình nhé.

Script trên có kịch bản như sau:

  • Backup toàn bộ database MySQL trên server, mỗi database được tạo thành 1 file .gz và lưu trong thư mục mysql
  • Backup toàn bộ code trong thư mục /home/www/domain, mỗi code web tạo thành 1 file .zip
  • Backup toàn bộ file cấu hình Nginx trong thư mục /etc/nginx/conf.d/ và lưu trong thư mục nginx
  • Tổng hợp tất cả các file backup vào 1 folder
  • Tự động upload lên Google Drive vào khoảng thời gian bạn đặt.
  • Tự động xóa file backup trên server sau khi upload xong.
  • Thiết lập thời gian tự động xóa file backup cũ trên Google Drive.

Lập lịch backup

Sử dụng Crontab để lập lịch chạy script

Dùng lệnh sau để chỉnh sửa crontab:

Nội dụng tương tự như sau:

Nhấp ESC :wq để thoát.

0 3 * * * có nghĩa là chạy script hàng ngày vào lúc 3:00

Hi vọng bài viết trên sẽ giúp cho công việc backup dữ liệu của các bạn trở nên nhẹ nhàng hơn. Chúc các bạn thành công.

Chia sẻ bài viết nhé bạn:
Share