Hướng dẫn dùng Rclone để sao lưu VPS lên Google Drive chi tiết nhất

Hướng dẫn dùng Rclone để sao lưu VPS lên Google Drive chi tiết nhất

27/02/2023 Blog, Tin tức

Một số phần mềm chạy lưu trữ web hiện được cài đặt sẵn các tính năng backup cho VPS. Tuy nhiên, nếu bạn chạy VPS trần bằng LAMP, LEMP, HOVPS hoặc VPSSIM, bạn phải tự backup cho VPS. Trong bài viết dưới đây, Tenten sẽ hướng dẫn bạn cách sao lưu toàn bộ VPS của mình lên Google Drive thông qua Rclone đơn giản và chi tiết nhất.

Hướng dẫn dùng Rclone để sao lưu VPS lên Google Drive chi tiết nhất

Rclone là gì?

Rclone là một công cụ để quản lý lưu trữ dữ liệu và đồng bộ hóa dữ liệu giữa các máy chủ và dịch vụ lưu trữ đám mây. Rclone hỗ trợ nhiều hệ điều hành như Windows, Desktop, Linux, Network BSD, MacOS... cùng nhiều dịch vụ lưu trữ trực tuyến khác.  

Gần giống với Rsync, Rclone tập trung phát triển các tính năng cho phép người dùng tương tác trực tiếp với dữ liệu trên cloud. Rclone giúp doanh nghiệp lưu trữ và truy cập dữ liệu một cách an toàn và nhanh chóng, và nó hoàn toàn miễn phí. 

Sau đây là một số dịch vụ đám mây phổ biến mà Rclone hỗ trợ để đồng bộ hóa các tệp và thư mục, chẳng hạn như: 

  • Google Drive, Amazon Drive, Microsoft One Drive.
  • Openstack Swift (Tệp đám mây Rackspace hay Memset Memstore).
  • Amazon S3, Backblaze B2.
  • Dropbox, Hubic, SFTP. 
  • Yandex Disk.
  • Google Cloud Storage, The local filesystem.

Hướng dẫn cài đặt Rclone trên máy tính

Tenten sẽ hướng dẫn bạn cách cài đặt Rclone mới nhất và phù hợp với nhiều hệ điều hành. Ngoài ra, phần này sẽ giúp bạn nắm bắt được một số câu lệnh phổ biến khi sử dụng Rclone. 

Cách cài Rclone trên máy tính

Về cơ bản thì Rclone là một chương trình dòng lệnh. Do đó, bạn nên tải Rclone xuống, sau đó giải nén và di chuyển tệp vào thư mục /usr/sbin/ của VPS để sử dụng sau này. 

Lưu ý: Nếu Rclone đang cài đặt phiên bản cũ hơn, bạn chỉ cần chạy chuỗi lệnh sau để nhanh chóng cập nhật phiên bản mới. Để thuận tiện cho việc triển khai Rclone, hãy truy cập Changelog và tham khảo phiên bản mới nhất khi viết. 

  • Trình tự lệnh để cài đặt phiên bản mới nhất cho hệ điều hành Linux 64-bit:

cd /root/wget https://downloads.rclone.org/rclone-current-linux-amd64.zipunzip rclone-current-linux-amd64.zip\cp rclone-v*-linux-amd64/rclone /usr/sbin/rm -rf rclone-*

  • Trình tự lệnh để cài đặt phiên bản mới nhất cho hệ điều hành Linux 32-bit:

cd /root/wget https://downloads.rclone.org/rclone-current-linux-386.zipunzip rclone-current-linux-386.zip\cp rclone-v*-linux-386/rclone /usr/sbin/rm -rf rclone-*

Bạn có thể tải xuống phiên bản Rclone trực tiếp từ liên kết: https://rclone.org/downloads/ 

Sau khi cập nhật phiên bản mới, bạn có thể sử dụng lệnh rclone để xem bất kỳ thông tin nào bạn cần sử dụng. 

Một số câu lệnh cho Rclone 

Các lệnh mà người dùng thực thi để sử dụng Rclone sẽ có dạng chung sau:  

rclone command <parameters> <parameters...>

Trong đó command là lệnh và parameters là tham số cần được thực thi. 

Dưới đây là một số câu lệnh phổ biến được sử dụng bởi những người biểu diễn lưu trữ đám mây khi sử dụng Rclone: 

  • rclone config: Tạo cấu hình có thể định cấu hình để kết nối với dịch vụ đám mây.
  • rclone copy: Sao chép tệp từ máy chủ lên đám mây. Nếu dữ liệu bị trùng lặp, nó sẽ tự động bị bỏ qua.
  • rclone sync: Đồng bộ dữ liệu từ máy chủ lên đám mây.
  • rclone move: Di chuyển tệp và chuyển tiếp từ máy chủ lên đám mây.
  • rclone delete: Xóa toàn bộ dữ liệu trong thư mục đã chọn.
  • rclone purge: Xóa toàn bộ dữ liệu và tất cả nội dung trong thư mục đã chọn.
  • rclone mkdir: Nếu nó không tồn tại, hãy tạo Vould.
  • rclone rmdir: Xóa những người theo dõi được chỉ định, không thể xóa nếu có dữ liệu trong thư mục.
  • rclone rmdirs: Xóa tất cả các vị trí tuyển dụng trong đường dẫn được chỉ định.
  • rclone check: Kiểm tra xem dữ liệu có được đồng bộ hóa giữa máy chủ và đám mây hay không.
  • rclone ls: Liệt kê tất cả các tệp và trình tải xuống dưới dạng danh sách, bao gồm Kích thước và đường dẫn.
  • rclone lsd: Liệt kê toàn bộ sự sụp đổ.
  • rclone lsl: Liệt kê tất cả dữ liệu, bao gồm ngày sửa đổi, kích thước và đường dẫn tệp.
  • rclone size: Trả về tất cả các kích thước và tất cả các tệp bên trong thư mục đã chỉ định.

Hướng dẫn dùng Rclone để sao lưu VPS lên Google Drive chi tiết nhất 2

Cách backup VPS lên cloud bằng Rclone

Bạn cần thực hiện 3 bước để sao lưu VPS lên dịch vụ đám mây với Rclone. Chi tiết như sau: 

Bước 1 - Tạo kết nối từ Rclone tới cloud

Tùy thuộc vào dịch vụ đám mây, bạn được sử dụng để thực hiện các bước kết nối thích hợp. Dưới đây là hai kết nối giữa Rclone và Google Drive và Amazon Drive, One Drive, Yandex, bạn có thể tham khảo: 

Kết nối Rclone và Google Drive 

Trước hết, hãy tạo cấu hình kết nối của Rclone với Google Drive dưới tên của điều khiển từ xa. Trong bước này, bạn chỉ cần thực hiện một lần, và lần sau bạn hoàn toàn có thể bỏ qua nó. 

  • Đầu tiên, kết nối SSH với VPS, sau đó thực hiện lệnh:

rclone config

  • Ngay sau đó là thông báo No remotes found – make a new one. Bạn hãy gõ n vào, rồi nhấn Enter để tạo mới remote.

No remotes found - make a new one

  1. n) New remote
  2. s) Set configuration password
  3. q) Quit config

n/s/q> n

  • Tiếp theo, trong dòng "name", bạn nhập tên của remote và bạn có thể sử dụng bất cứ thứ gì bạn thích, miễn là bạn có thể nhớ. Tên này sẽ được sử dụng trong script backup để đại diện cho kết nối với dịch vụ lưu trữ đám mây.
  1. n) New remote
  2. s) Set configuration password
  3. q) Quit config

n/s/q> n

name> remote

  • Một danh sách các dịch vụ đám mây (không giới hạn) xuất hiện trên màn hình máy tính của bạn, hãy nhập 11 để chọn Google Drive và nhấn Enter.

name> remote

Type of storage to configure.

Choose a number from below, or type in your own value

 1 / Alias for a existing remote

   \ "alias"

 2 / Amazon Drive

   \ "amazon cloud drive"

 3 / Amazon S3 Compliant Storage Providers (AWS, Ceph, Dreamhost, IBM COS, Minio)

   \ "s3"

 4 / Backblaze B2

   \ "b2"

 5 / Box

   \ "box"

 6 / Cache a remote

   \ "cache"

 7 / Dropbox

   \ "dropbox"

 8 / Encrypt/Decrypt a remote

   \ "crypt"

 9 / FTP Connection

   \ "ftp"

10 / Google Cloud Storage (this is not Google Drive)

   \ "google cloud storage"

11 / Google Drive

   \ "drive"

12 / Hubic

   \ "hubic"

13 / Local Disk

   \ "local"

14 / Mega

   \ "mega"

15 / Microsoft Azure Blob Storage

   \ "azureblob"

16 / Microsoft OneDrive

   \ "onedrive"

17 / OpenDrive

   \ "opendrive"

18 / Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH)

   \ "swift"

19 / Pcloud

   \ "pcloud"

20 / QingCloud Object Storage

   \ "qingstor"

21 / SSH/SFTP Connection

   \ "sftp"

22 / Webdav

   \ "webdav"

23 / Yandex Disk

   \ "yandex"

24 / http Connection

   \ "http"

Storage> 11

  • Tiếp theo, để trống 2 dòng Client ID và Client Secret bằng cách nhấn Enter 2 lần.
  • Ở Scope that rclone should use when requesting access from the drive, hãy chọn 1– drive
  • Phía dưới, ở 2 dòng ID of the root foldervà Service Account Credentials JSON file pathbạn cũng cần để trống tiếp bằng cách nhấn Enter.

Storage> 11

Google Application Client Id - leave blank normally.

client_id>

Google Application Client Secret - leave blank normally.

client_secret>

Scope that rclone should use when requesting access from the drive.

Choose a number from below, or type in your own value

 1 / Full access all files, excluding Application Data Folder.

   \ "drive"

 2 / Read-only access to file metadata and file contents.

   \ "drive.readonly"

   / Access to files created by rclone only.

 3 | These are visible on the drive website.

   | File authorization is revoked when the user deauthorizes the app.

   \ "drive.file"

   / Allows read and write access to the Application Data folder.

 4 | This is not visible in the drive website.

   \ "drive.appfolder"

   / Allows read-only access to file metadata but

 5 | does not allow any access to read or download file content.

   \ "drive.metadata.readonly"

scope> 1

ID of the root folder - leave blank normally.  Fill in to access "Computers" folders. (see docs).

root_folder_id>

Service Account Credentials JSON file path  - leave blank normally.

Needed only if you want to use SA instead of interactive login.

service_account_file>

Remote config

  • Trên màn hình sẽ hiện ra câu hỏi nghi vấn Use auto config? Tại đây bạn nhập n  rồi tiếp tục nhấn Enter. Rclone sẽ đưa ra một đường link và bạn có thể click thẳng vào đó hoặc copy đường dẫn trong terminal và paste vào trình duyệt.

Remote config

Use auto config?

 * Say Y if not sure

 * Say N if you are working on a remote or headless machine or Y didn't work

  1. y) Yes
  2. n) No

y/n> n

If your browser doesn't open automatically go to the following link: https://accounts.google.com/o/oauth2/auth?access_type=offlinexxxx

  • Sau khi bấm vào link, giao diện sẽ hiển thị như sau

Hướng dẫn dùng Rclone để sao lưu VPS lên Google Drive chi tiết nhất 3

  • Tại đây, bạn chọn Allow để đồng ý truy cập, trên màn hình khi đó sẽ hiển thị một đoạn mã verification code như sau

Hướng dẫn dùng Rclone để sao lưu VPS lên Google Drive chi tiết nhất 4

  • Tiếp tục copy đoạn mã này rồi quay trở lại màn hình SSH. Tại đây bạn paste đoạn code này vào dòng Enter verification code, lại nhấn Enter.
  • Sau khi hiển thị câu hỏi tiếp theo Configure this as a team drive?, bạn tiếp tục nhập n

If your browser doesn't open automatically go to the following link: https://accounts.google.com/o/oauth2/auth?access_type=offlinexxxx

Log in and authorize rclone for access

Enter verification code> 4/AABw8gMKPxxxxxxxxxx

Configure this as a team drive?

  1. y) Yes
  2. n) No

y/n> n

--------------------

  • Tại đây Client vẫn cần bạn xác nhận lại các thông tin lần nữa. Bạn nhấn y để đồng ý, rồi nhấn q để thoát khỏi giao diện cấu hình kết nối.

--------------------

[remote]

type = drive

client_id =

client_secret =

scope = drive

root_folder_id =

service_account_file =

token = {"access_token":"xxx","token_type":"Bearer","refresh_token":"1/xxx","expiry":"2018-05-16T10:55:03.488381196+07:00"}

--------------------

  1. y) Yes this is OK
  2. e) Edit this remote
  3. d) Delete this remote

y/e/d> y

Current remotes:

 

Name                 Type

====                 ====

remote               drive

 

  1. e) Edit existing remote
  2. n) New remote
  3. d) Delete remote
  4. r) Rename remote
  5. c) Copy remote
  6. s) Set configuration password
  7. q) Quit config

e/n/d/r/c/s/q> q

Do đó, phương pháp tạo kết nối cho Rclone với Google Drive đã hoàn tất và trên kết nối tiếp theo, bạn có thể bỏ qua hoàn toàn các bước này và nhanh chóng đồng bộ hóa thông tin triển khai trên Google Drive. 

Tạo kết nối Rclone với Amazon Drive, One Drive, Yandex 

Hiện nay, có rất nhiều dịch vụ đám mây phổ biến thường được sử dụng để thay thế Google Drive, chẳng hạn như Amazon Drive, One Drive hoặc Yandex.

Đạt được kết nối của Rclone với các biểu mẫu đám mây này giống như bạn làm với Google Drive. Sự khác biệt duy nhất giữa các dịch vụ này là nhận được access_token. 

Khi bạn muốn sử dụng OneDrive, bạn cần chọn đúng loại tài khoản cá nhân (Personal) hoặc tài khoản doanh nghiệp (Business) và bạn cần đồng bộ hóa dữ liệu của mình. 

Trong loại kết nối này, bạn cần xác minh rằng dữ liệu sẽ được triển khai thông qua remote machine có sẵn trên trình duyệt của máy tính và được triển khai bằng lệnh rclone authorize “tên_cloud”.

Để hiểu rõ hơn, Tenten sẽ sử dụng các bước xác thực dữ liệu trên OneDrive làm ví dụ: 

Microsoft App Client Id - leave blank normally.

client_id>

Microsoft App Client Secret - leave blank normally.

client_secret>

Remote config

Choose OneDrive account type?

 * Say b for a OneDrive business account

 * Say p for a personal OneDrive account

  1. b) Business
  2. p) Personal

b/p> p

Use auto config?

 * Say Y if not sure

 * Say N if you are working on a remote or headless machine

  1. y) Yes
  2. n) No

y/n> n

For this to work, you will need rclone available on a machine that has a web browser available.

Execute the following on your machine:

        rclone authorize "onedrive"

Sau đó, khi bạn chạy lệnh rclone authorize “onedrive”  trên máy tính của bạn để có được access_token. Quá trình này triển khai theo 3 bước sau: 

  • Bước 1: Trên trang Rclone downloads, tải phiên bản Rclone cho Windows hoặc OSX về máy tính cá nhân của bạn. Cụ thể hơn là WindowsAMD64 - Phiên bản 64-bit, rclone - v1.42 - Windows - AMD64. Hãy giải nén tập tin mà chúng ta vừa tải, tìm và để tập tin rclone .exe chạy trên cửa sổ lệnh tìm kiếm (ví dụ: D:\Rclone/rclone.exe).
  • Bước 2: Gõ Run trên thanh tìm kiếm, để mở Windows CMD. Khi CMD đang mở, hãy chạy lệnh D:\Rclone/rclone .exe và đường dẫn tệp (ví dụ: D:\Rclone\rclone.exe authorize “onedrive”.
  • Bước 3: Màn hình sẽ chuyển sang cửa sổ trình duyệt yêu cầu bạn xác thực với thông tin đăng nhập của mình.

Nếu bạn đăng nhập thành công, màn hình sẽ hiển thị thông báo "Success" và yêu cầu " Go back to rclone to continue" sẽ được hiển thị trong trình duyệt của bạn. Bây giờ, hãy quay lại ứng dụng CMD và thực hiện copy access_token để xác thực với VPS.              

C:\Users\Tenten>D:\Rclone\rclone.exe authorize "onedrive"

 

Choose OneDrive account type?

* Say b for a OneDrive business account

* Say p for a personal OneDrive account

  1. b) Business
  2. p) Personal

b/p> p

If your browser doesn't open automatically go to the following link:

http://127.0.0.1:53682/auth

Log in and authorize rclone for access

Waiting for code...

Got code

Paste the following into your remote machine --->{"access_token":"EwD4Aq1DBAAUcSSzoTJJxxx","expiry":"2018-05-6T11:43:25.3184173+07:00""}

<---End paste

Một lưu ý nhỏ về access_token bạn cần nhớ: nhớ rằng access_token là một chuỗi ký tự liền mạch. Sử dụng hai ứng dụng, EmEditor hoặc Notepad ++, để giúp access_token xóa các ký tự thừa. Khi bạn sao chép từ CMD, chúng có thể gây ra hiện tượng cách dòng. 

Sử dụng tập lệnh để tự động sao lưu toàn bộ VPS của bạn và tải nó lên cloud 

Bắt đầu với phiên bản 1.35, các tập lệnh script có thể được vận hành bằng Rclone. Kết nối của máy khách với đám mây được đặt tên là điều khiển từ xa, nếu bạn sử dụng kết nối khác hoặc tự thay đổi tên trong tập lệnh để tránh nhầm lẫn.  

  • Đầu tiên, bạn cần tạo các tệp backup.sh trong thư mục /root/ 

nano /root/backup.sh

  • Vui lòng sao chép nội dung tập lệnh sau và dán nó vào tệp tập lệnh trên máy tính của bạn:

!/bin/bash  

cwd=$(pwd)

SERVER_NAME=localhost

REMOTE_NAME=data

DATE=date +%Y-%m-%d

TIMESTAMP=$(date +%F)

BAK_DIR=/data-backup/

BACKUP_DIR=${BAK_DIR}/${TIMESTAMP}

MYSQL_USER="root"

MYSQL=/usr/bin/mysql

MYSQL_PASSWORD=Admin@123

Mysqldump=/usr/bin/mysqldump

rclone=/usr/sbin/rclone   

 

SECONDS=0

exec >$BAK_DIR/logs/${DATE}.log

exec 2>&1

 

mkdir -p "$BACKUP_DIR/mysql"  

 

echo "Starting Backup Database";

databases=$MYSQL -u $MYSQL_USER -p$MYSQL_PASSWORD -e "SHOW databases;" | grep -Ev "(Database |information_schema | performance_schema | mysql | sys)"  

for db in $databases; do

echo ${db}

$Mysqldump -u $MYSQL_USER -p$MYSQL_PASSWORD --databases $db --quick --lock-tables=false | gzip> "$BACKUP_DIR/mysql/$db.gz"

done

echo "Finished";

echo '';  

 

echo "Starting Backup Website";

mkdir -p $BACKUP_DIR/data

domain=${D##*/} # Domain name

echo "-" $domain;

zip -r -y -q $BACKUP_DIR/data/$TIMESTAMP.zip /var/www/html/ #Exclude cache fi done echo "Finished";

echo ''; echo "Starting compress file";

size1=$(du -sh ${BACKUP_DIR} | awk '{print $1}')

cd ${BAK_DIR}

tar -czf ${TIMESTAMP}".tgz" $TIMESTAMP

cd $cwd

size2=$(du -sh ${BACKUP_DIR}".tgz"| awk '{print $1}')

rm -rf ${BACKUP_DIR}

echo "File compress from "$size1" to "$size2

echo "Finished";

echo '';

 

echo "Starting Backup Uploading";

$rclone copy ${BACKUP_DIR}.tgz "$REMOTE_NAME:/$SERVER_NAME/" $rclone -q delete --min-age 1m "$REMOTE_NAME:/$SERVER_NAME" #remove all backups older than 1 week find ${BAK_DIR} -mindepth 1 -mtime +6 -delete

echo "Finished";

echo '';

 

duration=$SECONDS

echo "Total $size2, $(($duration/60)) minutes and $(($duration%60)) seconds elapsed."

  • Gán quyền cho các tập lệnh

chmod +x /root/backup.sh

  • Kiểm tra thư mục mới chứa dữ liệu sao lưu không được lệnh

rclone lsl remote:backupdaily

Bước 2 - Tạo phản hồi (cronjob) tự động cho các bản sao lưu hàng ngày 

Bây giờ bạn đã quá lười biếng để làm điều đó theo cách thủ công, bạn có thể tự động cài đặt cronjob bằng cách: 

  • Hãy dành cho mình một chút thời gian để triển khai sao lưu dữ liệu, chẳng hạn như lúc 3 giờ sáng. Sau đó, bạn mở một cửa sổ dòng lệnh và thực hiện câu lệnh sau:

EDITOR=nano crontab -e

  • Dán nội dung sau vào cửa sổ dòng lệnh trên máy tính của bạn:

0 3 * * * /root/backup.sh > /dev/null 2>&1

  • Sau đó, nhấp vào Ctrl + O tổ hợp phím, Tích cực để lưu và Ctrl + X tổ hợp phím để thoát.

Bạn đã hoàn tất việc sao lưu dữ liệu VPS của mình lên đám mây. Từ nay cứ sau 3 giờ sáng, tập lệnh sẽ tự động chạy. Đồng thời, tất cả dữ liệu sao lưu trên VPS sẽ tự động bị xóa sau khi quá trình tải lên hoàn tất. 

Tải toàn bộ file sao lưu từ đám mây xuống VPS 

Tải toàn bộ tệp sao lưu từ đám mây vào máy tính của bạn rất đơn giản. Điều này cũng giúp bạn khôi phục dữ liệu thông tin của riêng mình. 

Tuy nhiên, không đơn giản để tải trực tiếp tệp sao lưu VPS. Để làm điều này, bạn có thể sử dụng Rclone với câu lệnh Copy. Chẳng hạn: 

rclone copy "remote:/Tenten_BACKUP/2022-24-08" /root/

Lệnh trên sẽ sao chép 2022-24-08 trong thư mục "Tenten_BACKUP" trên đám mây để sao chép thư mục "/ root /" của VPS. Một ưu điểm là cả tải lên và tải xuống từ đám mây đều rất nhanh. 

Sau khi sao chép dữ liệu sao lưu vào VPS, bước tiếp theo bạn làm là thực hiện giải nén tệp zip. Sao chép thư mục web và nginx trở lại đúng vị trí và bạn cần nhập cơ sở dữ liệu. 

Kết luận

Đó là tất cả những gì liên quan đến Rclone và Tenten muốn nói với bạn. Cảm ơn bạn đã theo dõi chúng tôi trong bài viết này, và đừng quên chia sẻ bài viết này với những người xung quanh bạn. Nếu bạn vẫn còn thắc mắc về Rclone, hãy để lại bình luận bên dưới và Tenten sẽ giải đáp thắc mắc của bạn trong thời gian sớm nhất.  

DỊCH VỤ CLOUD SERVER TỐC ĐỘ XỬ LÝ VƯỢT TRỘI

Các tìm kiếm liên quan đến chủ đề “Rclone”

Config rclone Script backup rclone
Rclone gcp
Backup VPS to Google Drive
Auto backup VPS
Rsync
Rsync Linux OneDrive

Bài viết liên quan

Tin tức hưu ích với bạn

  • dns anycast 1

    DNS Anycast khác gì DNS Unicast? Vì sao nên dùng DNS Anycast

    Blog, Tin tức 12/10/2024
  • ssl-va-dnssec

    Phân biệt SSL và DNSSEC. Công nghệ nào bảo vệ website tốt hơn?

    Blog, Tin tức 12/10/2024

Bạn có bỏ lỡ tin tức nào không?

  • dns anycast 1

    DNS Anycast khác gì DNS Unicast? Vì sao nên dùng DNS Anycast

    Blog, Tin tức 12/10/2024
  • ssl-va-dnssec

    Phân biệt SSL và DNSSEC. Công nghệ nào bảo vệ website tốt hơn?

    Blog, Tin tức 12/10/2024
  • child nameservers 2

    Từ A-Z về Child nameservers. Hướng dẫn đăng ký nhanh chóng

    Blog, Tin tức 11/10/2024
  • acname

    CNAME là gì? ACNAME là gì? Khi nào nên sử dụng loại nào?

    Blog, Tin tức 11/10/2024