Linux Webserver

Hướng dẫn Auto Backup VPS lên Google Drive với Rclone

Rclone là công cụ đồng bộ hóa dữ liệu giữa máy chủ và các dịch vụ lưu trữ đám mây. Nó hỗ trợ rất nhiều dịch vụ: Amazon S3, Amazon Drive, Google Drive, Google Cloud Storage, Openstack Swift / Rackspace cloud files / Memset, Memstore, Dropbox, Microsoft OneDrive…

Trong bài này mình sẽ hướng dẫn trên VPS Ubuntu đang cài đặt Easyengine, bạn có thể sử dụng cài đặt khác, chỉ cần thay đỗi các đường dẫn trên code lại là được.

Kịch bản tự động backup

  • Sao lưu toàn bộ database MySQL, mỗi database một file .gz
  • Sao lưu toàn bộ code trong thư mục /var/www/domain.com/htdocs/
  • Sao lưu toàn bộ cấu hình Nginx trong thư mục /etc/nginx/
  • Tổng hợp tất cả dữ liệu vào 1 folder
  • Upload file backup lên Google Drive vào lúc 2h00 sáng
  • Tự động xóa file backup trên VPS sau khi upload xong, xóa file backup trên Cloud nếu quá 2 tuần

Bây giờ bắt đầu hướng dẫn cách làm nhé.

Cài đặt Rclone lên VPS

Ở đây mình sẽ tải Rclone bản mới nhất tại thời điểm viết. Sau đó giải nén và copy vào thư mục /usr/sbin/.

– Cài đặt với phiên bản v1.45 hệ điều hành Linux 64bit

– Cài đặt với phiên bản v1.45 hệ điều hành Linux 32bit

Kết nối VPS với Google Drive

Chạy lệnh sau:

Bạn sẽ nhận được thông báo no remotes found. Gõ n để tạo mới remote :

Tiếp theo bạn nhập vào tên cho remote. Bạn có thể điền bất cứ gì cũng được (không dấu, không khoảng cách). Tên này một lát sẽ điền vào code backup bên dưới.

Tiếp theo bạn chọn dịch vụ lưu trữ nào bạn muốn. Nhập vào số 12 để chọn Google Drive rồi Enter.

 

 

Điền vào số 1 rồi Enter

Tiếp tục bỏ trốngEnter

Tiếp tục bỏ trốngEnter

Điền vào n để chọn và Enter

Điền vào n để chọn và Enter

Bây giờ bạn copy cái đường dẫn loằng ngằng trong và paste vào trình duyệt. ( Nếu sử dụng Putty thì chỉ cần bôi đen cái đường dẫn là nó đã tự copy rồi nhé )

Trong trình duyệt, bạn bấm vào Allow để cho phép Rclone truy cập vào tài khoản Google Drive của bạn.

Google sẽ  cho bạn một đoạn mã. Nhiệm vụ của bạn là copy nó và paste vào SSH rồi Enter. (Sử dụng Putty chỉ cần chuột phải và Enter là được)

Cuối cùng gõ q để thoát config của Rclone.

Bây giờ bạn có thể gõ lệnh để thử đã kết nối thành công VPS đến rclone chưa nhé.

Ví dụ mình đã tạo với tên là chaublog thì gõ lệnh sau :

Nếu thành công thì nó sẽ liệt kê các thư mục hoặc file trong Google Drive của bạn.

Sử dụng Script để Backup Source Code  và Database

Tạo một file script có tên là backup.sh trong thư mục /root/: ​

Nếu nano chưa được cài thì bạn sử dụng lệnh sau để cài đặt:

Copy toàn bộ file script bên dưới vào file backup.sh. Một số chỗ bạn cần thay đổi như sau:

  • SERVER_NAME: tên thư mục chứa backup trên GoogleDrive.
  • MYSQL_PASSWORD: bạn thay bằng password root Database của bạn.
  • Đoạn này chaublog:$SERVER_NAME: chaublog là tên remote của mình, bạn thay bằng tên remote bạn đã tạo ở bước kết nối Google Drive.

Lưu ý: script có sử dụng lệnh zip để nén. Bạn cài đặt zip với lệnh sau trước khi chạy script:

Lưu ý:

  • Script trên sẽ back up toàn bộ database, mỗi database nén thành một file .gz, lưu trong thư mục mysql
  •  Mỗi thư mục chứa website được nén lại thành 1 file .zip
  • Toàn bộ cấu hình Nginx của các website được lưu trong thư mục nginx
  • SERVER_NAME mặc định là CHAUBLOG_BACKUP, đây là tên folder nó sẽ tạo ở Google Drive, bạn có thể thay đỗi thành tên gì bạn muốn.
  • Muốn điều chỉnh thời gian xóa file backup, bạn sửa thông số ở dòng delete và rmdirs. Hiện tại, tự động xóa file/folder cũ hơn 2 tuần.

– Nhấn Ctrl+O rồi Enter để lưu và Ctrl+X để thoát.

– Phân quyền cho script

– Vậy là xong rồi đó, giờ bạn có thể test lại bằng cách chạy lệnh:

Thử kiểm tra trên Google Drive xem có thư mục mới với dữ liệu backup chưa nhé.

Tạo cronjob tự động backup hàng ngày

Giờ mình sẽ cho script tự động chạy lúc 2h00 sáng.

Dán nội dung sau vào cuối

– Nhấn Ctrl+O rồi Enter để lưu và Ctrl+X để thoát.

Vậy là xong, cứ 2h sáng hàng ngày script sẽ tự động chạy, backup toàn bộ dữ liệu của VPS rồi upload lên Cloud. Đồng thời, dữ liệu backup trên VPS sẽ được xóa luôn sau khi upload xong.

Tải backup từ Google Drive và khôi phục lại website

Trong trường hợp bạn muốn khôi phục lại website, bạn làm như sau:

Đầu tiên bạn tải toàn bộ backup về thư mục /root (nhớ thay remote_name bằng tên remote của bạn đã tạo và diretory_name, date bằng tên thư mục và ngày tháng trên Google Drive của bạn).

Ví dụ của mình :

Lệnh trên sẽ download dữ liêu bên trong  folder 2018-12-10 trong thư mục CHAUBLOG_BACKUP trên Cloud về thư mục /root/của VPS. Tốc độ upload và download từ Cloud đều rất nhanh.

Khi đã tải về thư mục /root. Đầu tiên bạn giải nén source code bằng lệnh unzip:

Sau đó copy vào thư mục website:

Tiếp theo giải nén database :

Còn khôi phục database như thế nào thì xem lại lệnh ở đây nhé : Khôi phục database thủ công

Vậy là đã xong phần hướng dẫn Auto Backup VPS lên Google Drive với Rclone.

About Flash

Leave a Reply

Your email address will not be published. Required fields are marked *