VPS
Hosting
Email
Máy chủ
Firewall
Tên Miền
SSL
3
3

Cách dùng Rclone để Backup toàn bộ VPS lên Google Drive

190
Lượt xem
Home Kiến thức dịch vụ VPS Cách dùng Rclone để Backup toàn bộ VPS lên Google Drive

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

Giới thiệu tổng quát Rclone

Rclone là một công cụ dùng quản lý lưu trữđồng bộ hóa dữ liệu giữa máy chủ với các dịch vụ cloud (lưu trữ đám mây). Rclone hỗ trợ khá nhiều hệ điều hành khác nhau như: Windows, Deb, Linux, NetBSD, MacOS,… Đồng thời Rclone cũng có thể hỗ trợ nhiều dịch vụ lưu trữ trực tuyến. 

Rclone là một công cụ dùng quản lý lưu trữ và đồng bộ hóa dữ liệu
Rclone là một công cụ dùng quản lý lưu trữ và đồng bộ hóa dữ liệu

Gần giống như Rsync, nhưng Rclone lại tập trung phát triển chức năng cho phép người dùng có thể tương tác trực tiếp với dữ liệu trên bộ nhớ đám mây. Rclone có thể giúp cho dữ liệu của các doanh nghiệp được lưu trữ an toàn và truy cập nhanh chóng. Đặc biệt, đây là công cụ hoàn toàn miễn phí.

Dưới đây là một số dịch vụ Cloud thông dụng mà Rclone hỗ trợ đồng bộ hóa các tệp, thư mục đến và đi như:

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

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

Vietnix sẽ đưa ra cho bạn biết cách cài đặt Rclone mới nhất và phù hợp với nhiều hệ điều hành. Bên cạnh đó, phần này cũng sẽ giúp bạn nắm bắt một số câu lệnh thông dụng khi dùng Rclone.

Cài đặt Rclone trên máy

Rclone là một chương trình dòng lệnh. Chính vì vậy, bạn nên download Rclone xuống, sau đó giải nén và di chuyển file đến thư mục /usr/sbin/ của VPS để thuận tiện cho sau này sử dụng.

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

  • Chuỗi lệnh để cài đặt bản mới nhất cho hệ điều hành Linux 64bit:
cd /root/
wget https://downloads.rclone.org/rclone-current-linux-amd64.zip
unzip rclone-current-linux-amd64.zip
\cp rclone-v*-linux-amd64/rclone /usr/sbin/
rm -rf rclone-*
  • Chuỗi lệnh để cài đặt bản mới nhất cho hệ điều hành Linux 32bit:
cd /root/
wget https://downloads.rclone.org/rclone-current-linux-386.zip
unzip rclone-current-linux-386.zip
\cp rclone-v*-linux-386/rclone /usr/sbin/
rm -rf rclone-*

Bạn có thể tải trực tiếp các phiên bản Rclone tại link: https://rclone.org/downloads/

Sau khi đã cập nhập phiên bản mới, giờ đây bạn có thể sử dụng lệnh Rclone để xem bất cứ thông tin nào mà bạn cần sử dụng.

Một số câu lệnh sử dụng Rclone

Những câu lệnh được người dùng thực hiện để sử dụng Rclone sẽ có dạng chung như sau: 

rclone command <parameters> <parameters...>

Trong đó, command chính là câu lệnh và parameters là các tham số cần thực hiện.

Sau đây sẽ là một số câu lệnh thông dụng mà người triển khai lưu trữ đám mây hay sử dụng khi dùng Rclone:

  • rclone config: Tạo file cấu hình để kết nối đến dịch vụ cloud.
  • rclone copy: Copy files từ Server đến cloud. Nếu dữ liệu trùng lặp thì sẽ tự động bỏ qua.
  • rclone sync: Đồng bộ dữ liệu từ Server lên Cloud.
  • rclone move: Di chuyển files và folders từ Server lên Cloud.
  • rclone delete: Xóa tất cả dữ liệu trong thư mục đã chọn.
  • rclone purge: Xóa tất cả dữ liệu và toàn bộ nội dung trong thư mục đã chọn.
  • rclone mkdir: Tạo folder nếu chưa tồn tại.
  • rclone rmdir: Xóa folder folder chỉ định, không thể xóa nếu folder có dữ liệu bên trong.
  • rclone rmdirs: Xóa tất cả folders rỗng trong đường dẫn được chỉ định.
  • rclone check: Kiểm tra dữ liệu giữa Server và Cloud đã đồng bộ chưa.
  • rclone ls: Liệt kê tất cả files và folders dưới dạng danh sách gồm Size và Path.
  • rclone lsd: Liệt kê toàn bộ folders.
  • rclone lsl: Liệt kê toàn bộ dữ liệu gồm ngày sửa đổi, kích thước và đường dẫn tới files.
  • rclone size: Trả về kích thước và tất cả files bên trong folder chỉ định.

Hướng dẫn Backup VPS lên Cloud với Rclone

Bạn cần thực hiện 3 bước để backup VPS lên các dịch vụ Cloud với Rclone. Cụ thể như sau:

Bước 1 – Tạo kết nối Rclone với Cloud

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

Cách 1 – Tạo kết nối Rclone với Google Drive

Đầu tiên, bạn hãy tạo cấu hình kết nối Rclone với Google Drive dưới tên remote. Ở bước này bạn chỉ cần phải thao tác một lần duy nhất, những lần sau bạn hoàn toàn có thể bỏ qua.

  • Đầu tiên bạn hãy kết nối SSH với VPS rồi triển khai chạy lệnh:
rclone config
  • Tiếp sau đó, bạn sẽ nhận được thông báo No remotes found – make a new one. Hãy gõ n vào, rồi nhấn Enter để tạo mới remote.
No remotes found - make a new one
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n
  • Tiếp theo, ở dòng “name” bạn nhập vào tên cho remote, bạn có thể sử dụng bất cứ lên nào mà bạn thích, miễn là bạn có thể nhớ được. Cái tên này sẽ được sử dụng để đại diện cho kết nối tới dịch vụ lưu trữ đám mây của bạn ở script backup bên dưới.
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n
name> remote
  • Lúc này trên màn hình máy tính sẽ hiện ra một danh sách các dịch vụ cloud (các dịch vụ không giới hạn), hãy nhập 11 vào để chọn Google Drive, rồi sau đó 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, bạn hãy để trống 2 dòng Client IDClient Secret bằng cách nhấn Enter 2 lần.
  • Ở mục Scope that rclone should use when requesting access from the drive bạn hãy chọn 1drive
  • Sau đó, 2 dòng ID of the root folderService Account Credentials JSON file path bạn cũng hãy để trống bằng cách nhấn tiếp 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 hiện ra câu hỏi Use auto config? bạn hãy nhập n vào rồi tiếp tục nhấn Enter. Ngay lập tức, Rclone sẽ đưa ra một đường link. 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
y) Yes
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
  • Giao diện sau khi nhấp vào đường link thì sẽ hiển thị như sau:
Tạo kết nối Rclone với  Google Drive
Tạo kết nối Rclone với Google Drive
  • Lúc này, bạn hãy nhấn vào nút Allow để đồng ý truy cập, sau đó trên màn hình của bạn sẽ hiển thị một đoạn mã verification code như hình dưới:
Tạo kết nối Rclone với  Google Drive
Tạo kết nối Rclone với Google Drive
  • Hãy copy đoạn mã này vào quay trở lại màn hình SSH, và paste đoạn code này vào dòng Enter verification code trên cửa sổ, rồi tiếp tục nhấn Enter.

Với câu hỏi tiếp theo Configure this as a team drive?, hãy 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?
y) Yes
n) No
y/n> n
--------------------
  • Cuối cùng, Client cần bạn xác nhận lại các thông tin một lần nữa, hãy nhấn y để đồng ý, sau các câu lệnh rồi nhấn q để giúp bạn có thể thoát ra 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"}
--------------------
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y
Current remotes: 

Name                 Type
====                 ====
remote               drive

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> q

Như vậy là cách tạo kết nối Rclone với Google Drive đã được hoàn thành, trong lần kết nối tiếp theo bạn hoàn toàn có thể bỏ qua các bước này, và đi đến triển khai đồng bộ hóa thông tin trên Google Drive nhanh chóng.

Cách 2 – Tạo kết nối Rclone với Amazon Drive, Onedrive, Yandex

Hiện nay, có rất nhiều dịch vụ cloud được sử dụng phổ biến thay thế cho Google Drive như Amazon Drive, OneDrive hay Yandex. Việc triển khai tạo kết nối Rclone với cho các hình thức cloud này cũng giống như các bạn thực hiện với Google Drive. Điểm khác nhau duy nhất của các dịch vụ này là ở chỗ lấy access_token.

Có một lưu ý nhỏ cho bạn khi muốn sử dụng OneDrive, đó là bạn cần phải chọn đúng loại tài khoản cá nhân (Personal) hoặc tài khoản doanh nghiệp (Business) mà bạn muốn đồng bộ dữ liệu.

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

Để bạn hiểu rõ hơn, Vietnix sẽ lấy ví dụ bước xác thực dữ liệu trên OneDrive như sau:

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
b) Business
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
y) Yes
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 để lấy access_token. Quá trình này sẽ được triển khai theo 3 bước sau:

  • Bước 1: Trên trang Rclone Downloads bạn hãy tải bản Rclone cho Windows hoặc OSX về máy tính cá nhân của bạn. Cụ thể hơn thì đó chính là bản WindowsAMD64 – 64 Bit được rclone – v1.42 – windows – amd64. Hãy giải nén file vừa tải, hãy tìm và để file rclone.exe để ở chế độ chạy trên cửa sổ lệnh tìm kiếm (ví dụ: D:\Rclone/rclone.exe).
  • Bước 2: Hãy mở ứng dụng CMD của Windows bằng cách nhập Run trên thanh tìm kiếm, sau đó trên thanh cửa sổ nhập CMD. Sau khi đã mở được CMD hãy chạy lệnh D:\Rclone/rclone.exe với đường dẫn file (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 và yêu cầu bạn đăng nhập thông tin để xác thực. Nếu đăng nhập thành công màn hình sẽ hiện thông báo Success và sẽ hiển thị yêu cầu “Go back to rclone to continue” trên trình duyệt. Lúc này, bạn 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\Vietnix>D:\Rclone\rclone.exe authorize "onedrive" 

Choose OneDrive account type?
* Say b for a OneDrive business account
* Say p for a personal OneDrive account
b) Business
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 chú ý nhỏ về access_token mà bạn cần nhớ là access_token là một chuỗi ký tự liền mạch. Hãy sử dụng 2 ứng dụng là EmEditor hay Notepad++ để giúp access_token của bạn loại bỏ các ký tự bị thừa. Chúng có thể gây ra hiện tượng cách dòng khi bạn thực hiện copy từ CMD.

Sử dụng Script tự động backup toàn bộ VPS và upload lên Cloud

Bắt đầu từ phiên bản 1.35 trở lên thì Script mới có thể triển khai hoạt động với Rclone được. Kết nối Client với Cloud được đặt tên remote, nếu bạn sử dụng kết nối khác thì hay tự thay đổi tên trong script để không bị nhầm lẫn. 

  • Việc đầu tiên, bạn cần tạo file backup.sh ở thư mục /root/
nano /root/backup.sh
  • Bạn hãy copy toàn bộ nội dung script bên dưới rồi paste vào file Script trên máy tính:
!/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."
  • Phân quyền cho Script
chmod +x /root/backup.sh
  • Test thư mục mới đã chứa dữ liệu backup chưa với lệnh
rclone lsl remote:backupdaily

Bước 2 – Tạo ra các cronjob tự động để backup hàng ngày

Hiện bạn quá lười để có thể tự thao tác bằng tay, bạn có thể cài đặt cronjob tự động bằng cách sau:

  • Hãy tự đặt cho mình một thời gian để triển khai backup dữ liệu, ví dụ vào lúc 3h00 sáng. Sau đó bạn mở cửa sổ Terminal lên và thực hiện câu lệnh bên dưới:
EDITOR=nano crontab -e
  • Dán nội dung sau vào cửa sổ Terminal trên máy tính của bạn:
0 3 * * * /root/backup.sh > /dev/null 2>&1
  • Tiếp đó bạn hãy nhấn tổ hợp phím Ctrl+O, Enter để lưu và tổ hợp phím Ctrl+X để thoát.

Chỉ như vậy thôi là bạn đã hoàn thanh xong backup dữ liệu VPS lên Cloud. Hàng này, cứ vào lúc 3 giờ sáng thì script sẽ tự động chạy. Đồng thời, tất cả các dữ liệu backup trên VPS sẽ được tự động xóa luôn sau khi đã upload xong.

Tải toàn bộ file backup từ Cloud xuống VPS

Thực hiện hành động tải toàn bộ file backup từ Cloud xuống máy tính rất đơn giản. Bạn chỉ cần click vào nút tải xuống rồi đợi là xong. Việc này cũng giúp cho bạn có thể tự khôi phục lại dữ liệu thông tin của mình.

Tuy nhiên để tải được một file backup trực tiếp về VPS thì không hề đơn giản. Muốn làm được điều này bạn có thể sử dụng Rclone với câu lệnh copy. Ví dụ như:

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

Lệnh trên sẽ copy folder 2022-24-08 trong thư mục “Vietnix_BACKUP” trên Cloud về thư mục “/root/” của VPS. Có một ưu điểm là tốc độ upload và download từ Cloud đều diễn ra rất nhanh.

Sau khi bạn đã tiến hành copy dữ liệu backup về VPS, bước tiếp theo bạn làm đó là tiến hành giải nén file zip. Hãy copy thư mục web và nginx về đúng với vị trí, đồng thời bạn cần tiến hành import database.

Lời kết

Trên đây là tất cả nội dung liên quan đến Rclone mà Vietnix muốn giới thiệu tới bạn. Cảm ơn bạn đã theo dõi bài viết này của chúng tôi và đừng quên chia sẻ bài viết hữu ích này tới cho mọi người xung quanh nhé. Nếu như vẫn còn thắc mắc liên quan đến Rclone thì hãy để lại bình luận xuống bên dưới, Vietnix sẽ giải đáp lại câu hỏi của bạn trong thời gian sớm nhất.

Chia sẻ bài viết
Đánh giá
5/5 - (3 bình chọn)
Kết nối với mình qua
Mình là Bo - admin của Quản Trị Linux. Mình đã có 10 năm làm việc trong mảng System, Network, Security và đã trải nghiệm qua các chứng chỉ như CCNP, CISSP, CISA, đặc biệt là chống tấn công DDoS. Gần đây mình trải nghiệm thêm Digital Marketing và đã hòan thành chứng chỉ CDMP của PearsonVUE. Mình rất thích được chia sẻ và hỗ trợ cho mọi người, nhất là các bạn sinh viên. Hãy kết nối với mình nhé!
Đăng ký nhận tin
Để không bỏ sót bất kỳ tin tức hoặc chương trình khuyến mãi từ Vietnix
Bài viết liên quan
Bình luận
Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận
Yêu cầu Vietnix gọi lại

Vui lòng nhập thông tin để chúng tôi liên hệ lại với bạn

NGÀY
GIỜ
PHÚT
GIÂY