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 /home/domain.com/public_html/
  • Sao lưu toàn bộ cấu hình Nginx trong thư mục /etc/nginx/conf.d/ 
  • 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

cd /root/
wget https://downloads.rclone.org/v1.45/rclone-v1.45-linux-amd64.zip
unzip rclone-v*-linux-amd64.zip
cp rclone-v*-linux-amd64/rclone /usr/sbin/
rm -rf rclone-*

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

cd /root/
wget https://downloads.rclone.org/v1.45/rclone-v1.45-linux-386.zip
unzip rclone-v*-linux-386.zip
cp rclone-v*-linux-amd64/rclone /usr/sbin/
rm -rf rclone-*

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à chunguyenbn thì gõ lệnh sau :

rclone lsd chunguyenbn:

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:

yum install nano

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 admin Database của bạn.
  • Đoạn này chunguyenbn:$SERVER_NAME: chunguyenbn 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à HOCVPS_BACKUP, nếu muốn thay đổi folder trên Cloud bạn hãy thay đổi tham số này.
  • Muốn điều chỉnh thời gian xóa file backup, bạn sửa thông số ở dòng deletermdirs. 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.

–  Tiếp theo thực hiện câu lệnh :

service cron restart

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.

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

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *