Rclone là một công cụ dòng lệnh (CLI) miễn phí, đa năng, giúp đơn giản hóa và tự động hóa các tác vụ quản lý dữ liệu trên nhiều nền tảng đám mây. Trong bài viết này, mình sẽ hướng dẫn bạn chi tiết các bước cài đặt, cấu hình cơ bản nhất, cùng những lệnh thường dùng để bạn có thể nhanh chóng bắt đầu quản lý dữ liệu đám mây của mình một cách hiệu quả.
Những điểm chính
- Khái niệm Rclone: Là một công cụ dòng lệnh mã nguồn mở dùng để quản lý, đồng bộ hóa và truyền dữ liệu giữa máy tính/máy chủ với hơn 50 dịch vụ lưu trữ đám mây khác nhau.
- Lợi ích của Rclone: Nổi bật với khả năng hỗ trợ đa nền tảng, đồng bộ hóa dữ liệu linh hoạt, sao lưu và phục hồi hiệu quả, tiết kiệm băng thông (nhờ sao chép gia tăng), và có thể tự động hóa qua script.
- Hướng dẫn cài đặt: Rất đơn giản, trên Linux chỉ cần chạy một dòng lệnh cài đặt duy nhất. Trên Windows/macOS, có thể tải file thực thi hoặc cài đặt qua Homebrew.
- Hướng dẫn Backup VPS lên Google Drive: Quy trình chi tiết bao gồm 4 bước: Thiết lập kết nối giữa Rclone và Google Drive qua rclone config, kết nối với các dịch vụ khác, tạo script tự động sao lưu, thiết lập Cronjob để tự động hóa sao lưu hàng ngày.
- Các lệnh Rclone cơ bản: Bao gồm các lệnh quan trọng như rclone ls, rclone copy, rclone sync, rclone move và rclone delete.
- Ứng dụng thực tế: Được ứng dụng rộng rãi để sao lưu dữ liệu từ VPS/Server lên Cloud một cách tự động, đồng bộ file giữa nhiều thiết bị, chuyển dữ liệu trực tiếp giữa các Cloud, và quản lý file từ xa qua dòng lệnh.
- Giải đáp các thắc mắc thường gặp khi sử dụng Rclone.
Rclone là gì?
Rclone là một công cụ dòng lệnh mã nguồn mở dùng để quản lý, đồng bộ hóa và truyền dữ liệu giữa máy tính, máy chủ với các dịch vụ lưu trữ đám mây khác nhau như Google Drive, OneDrive, Dropbox,… Rclone hỗ trợ hơn 50 dịch vụ đám mây phổ biến và cho phép bạn:
- Quản lý file: Sao chép, di chuyển, xóa, liệt kê file và thư mục.
- Đồng bộ hóa: Giữ cho nội dung của hai thư mục (ví dụ, một thư mục trên VPS và một thư mục trên Google Drive) giống hệt nhau.
- Sao lưu (Backup): Tạo bản sao dữ liệu từ một nơi (ví dụ: VPS) sang đám mây để phòng ngừa mất mát dữ liệu.

Rclone có thể chạy trên các hệ điều hành phổ biến như Windows, Linux (Ubuntu, CentOS, Debian…) và macOS, mang lại sự linh hoạt cho người dùng trên bất cứ môi trường nào. Thêm vào đó, công cụ này còn hỗ trợ đa dạng các dịch vụ lưu trữ và giao thức, bao gồm:
- Google Drive.
- Amazon S3 (Dịch vụ lưu trữ đối tượng của Amazon Web Services).
- Microsoft OneDrive.
- Dropbox.
- Box.
- Mega.
- pCloud.
- FTP (Giao thức truyền tệp).
- SFTP (Giao thức truyền tệp SSH).
- WebDAV (Web Distributed Authoring and Versioning – giao thức mở rộng của HTTP).

Lợi ích của Rclone đối với người dùng
- Hỗ trợ đa nền tảng: Rclone tương thích với hơn 40 dịch vụ lưu trữ đám mây phổ biến như Google Drive, Dropbox, OneDrive, Amazon S3 và nhiều dịch vụ khác, cho phép người dùng quản lý dữ liệu trên nhiều nền tảng một cách dễ dàng.
- Đồng bộ hóa dữ liệu linh hoạt: Công cụ này cho phép đồng bộ hóa dữ liệu một cách linh hoạt giữa máy tính và các dịch vụ đám mây, hỗ trợ cả đồng bộ hóa một chiều và hai chiều.
- Sao lưu và phục hồi hiệu quả: Rclone là một giải pháp tuyệt vời để sao lưu dữ liệu quan trọng lên đám mây và có thể phục hồi một cách nhanh chóng khi cần thiết. Người dùng có thể thiết lập sao lưu tự động để đảm bảo an toàn cho dữ liệu.
- Tiết kiệm băng thông: Rclone hỗ trợ sao chép gia tăng (incremental copy), tức là chỉ tải lên những phần dữ liệu đã thay đổi thay vì toàn bộ file, giúp tiết kiệm băng thông và tài nguyên hệ thống.
- Linh hoạt với dòng lệnh: Đây là một công cụ dòng lệnh có thể dễ dàng tích hợp vào các kịch bản, cho phép tự động hóa các tác vụ phức tạp bằng Cron job (trên Linux) hoặc Task Scheduler (trên Windows).
- Chuyển dữ liệu trực tiếp giữa các cloud: Nếu các nhà cung cấp đám mây hỗ trợ, Rclone có thể yêu cầu cloud A chuyển file trực tiếp sang cloud B mà không cần tải dữ liệu về máy trung gian đang chạy Rclone giúp tiết kiệm băng thông đáng kể và tăng tốc độ truyền tải.
- Mã hóa dữ liệu: Rclone có tính năng crypt cho phép bạn mã hóa client-side (mã hóa phía người dùng) dữ liệu ngay trên máy của mình trước khi chúng được tải lên đám mây, tăng cường bảo mật và quyền riêng tư, ngay cả nhà cung cấp dịch vụ đám mây cũng không thể đọc được nội dung file của bạn. Tuy nhiên, bạn cần giữ khóa mã hóa (encryption key) thật cẩn thận.
- Tiết kiệm tài nguyên: So với các ứng dụng đồng bộ có giao diện đồ họa, Rclone thường nhẹ hơn, tiêu thụ ít RAM và CPU hơn, rất phù hợp cho các server hoặc VPS có cấu hình hạn chế.

Hướng dẫn cài đặt Rclone cơ bản
Quá trình cài đặt Rclone khá đơn giản trên hầu hết các hệ điều hành.
Cài đặt trên Linux
Đây là phương pháp được khuyến nghị và dễ nhất cho Linux. Bạn cần có curl (công cụ dòng lệnh để truyền dữ liệu với URL) được cài đặt. Nếu chưa có, bạn có thể cài đặt bằng lệnh như sudo apt update && sudo apt install curl -y (cho Ubuntu/Debian).

Chạy lệnh sau trong terminal:
curl https://rclone.org/install.sh | sudo bash

Lệnh này sẽ tải về script cài đặt chính thức của Rclone và thực thi với quyền quản trị (sudo).
Cài đặt trên Windows/macOS
- Windows:
- Bạn truy cập trang download chính thức của Rclone và tải file
.zipphù hợp (32-bit hoặc 64-bit). - Sau đó bạn giải nén file
rclone.exevào một thư mục (ví dụ:C:\Rclone). - (Khuyến nghị) Thêm thư mục này vào Biến môi trường PATH của hệ thống để có thể gọi lệnh
rclonetừ bất kỳ đâu trong Command Prompt hoặc PowerShell.
- Bạn truy cập trang download chính thức của Rclone và tải file
- macOS:
- Cách dễ nhất là bạn sử dụng Homebrew:
brew install rclone. - Hoặc bạn có thể tải file binary từ trang download của Rclone, giải nén và di chuyển file
rclonevào một thư mục trong PATH (ví dụ/usr/local/bin).
- Cách dễ nhất là bạn sử dụng Homebrew:
Kiểm tra cài đặt thành công
Sau khi cài đặt, bạn mở terminal (Linux/macOS) hoặc Command Prompt/PowerShell (Windows) và gõ lệnh:
rclone version
Nếu cài đặt thành công, bạn sẽ thấy phiên bản Rclone hiện tại được hiển thị.
Luôn kiểm tra version sau khi cài để đảm bảo mọi thứ chạy đúng. Nếu gặp lỗi permission (quyền truy cập) trên Linux, hãy kiểm tra lại việc sử dụng lệnh sudo hoặc quyền thực thi của script.
Hướng dẫn Backup VPS lên Google Drive với Rclone chi tiết
Để sao lưu dữ liệu từ VPS của bạn lên các dịch vụ lưu trữ đám mây bằng Rclone, hãy làm theo các bước chi tiết dưới đây. Quy trình này sẽ hướng dẫn bạn từ việc thiết lập kết nối ban đầu cho đến tự động hóa hoàn toàn, đảm bảo dữ liệu của bạn luôn an toàn.
Bước 1: Thiết lập kết nối giữa Rclone và Google Drive
Quá trình kết nối Rclone với các dịch vụ đám mây khác nhau sẽ có những điểm tương đồng. Trong hướng dẫn này, mình sẽ tập trung vào Google Drive. Trước hết, bạn cần thiết lập một cấu hình kết nối, được gọi là remote. Đây là bước cấu hình ban đầu và bạn chỉ cần thực hiện một lần duy nhất.
- Để bắt đầu, hãy truy cập vào VPS của bạn thông qua SSH và thực thi lệnh sau:
rclone config- Hệ thống sẽ thông báo rằng chưa có
remotenào được cấu hình. Bạn hãy nhậpnvà nhấn Enter để tạo một kết nối mới.
No remotes found - make a new one
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n
- Tại mục
name, hãy đặt một tên định danh cho kết nối của bạn. Bạn có thể chọn bất kỳ tên nào dễ nhớ, ví dụ nhưremote. Tên này sẽ được sử dụng trong các script sao lưu sau này.
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n
name> remote
- Một danh sách các nhà cung cấp dịch vụ lưu trữ đám mây sẽ xuất hiện. Hãy tìm Google Drive (thường là số 22) và nhập số tương ứng, sau đó nhấn Enter.
name> remote
Option Storage.
Type of storage to configure.
Choose a number from below, or type in your own value.
1 / 1Fichier
\ (fichier)
2 / Akamai NetStorage
\ (netstorage)
3 / Alias for an existing remote
\ (alias)
4 / Amazon S3 Compliant Storage Providers including AWS, Alibaba, ArvanCloud, Ceph, ChinaMobile, Cloudflare, DigitalOcean, Dreamhost, Exaba, FlashBlade, GCS, HuaweiOBS, IBMCOS, IDrive, IONOS, LyveCloud, Leviia, Liara, Linode, Magalu, Mega, Minio, Netease, Outscale, Petabox, RackCorp, Rclone, Scaleway, SeaweedFS, Selectel, StackPath, Storj, Synology, TencentCOS, Wasabi, Qiniu and others
\ (s3)
5 / Backblaze B2
\ (b2)
6 / Better checksums for other remotes
\ (hasher)
7 / Box
\ (box)
8 / Cache a remote
\ (cache)
9 / Citrix Sharefile
\ (sharefile)
10 / Cloudinary
\ (cloudinary)
11 / Combine several remotes into one
\ (combine)
12 / Compress a remote
\ (compress)
13 / DOI datasets
\ (doi)
14 / Dropbox
\ (dropbox)
15 / Encrypt/Decrypt a remote
\ (crypt)
16 / Enterprise File Fabric
\ (filefabric)
17 / FTP
\ (ftp)
18 / FileLu Cloud Storage
\ (filelu)
19 / Files.com
\ (filescom)
20 / Gofile
\ (gofile)
21 / Google Cloud Storage (this is not Google Drive)
\ (google cloud storage)
22 / Google Drive
\ (drive)
23 / Google Photos
\ (google photos)
24 / HTTP
\ (http)
25 / Hadoop distributed file system
\ (hdfs)
26 / HiDrive
\ (hidrive)
27 / ImageKit.io
\ (imagekit)
28 / In memory object storage system.
\ (memory)
29 / Internet Archive
\ (internetarchive)
30 / Jottacloud
\ (jottacloud)
31 / Koofr, Digi Storage and other Koofr-compatible storage providers
\ (koofr)
32 / Linkbox
\ (linkbox)
33 / Local Disk
\ (local)
34 / Mail.ru Cloud
\ (mailru)
35 / Mega
\ (mega)
36 / Microsoft Azure Blob Storage
\ (azureblob)
37 / Microsoft Azure Files
\ (azurefiles)
38 / Microsoft OneDrive
\ (onedrive)
39 / OpenDrive
\ (opendrive)
40 / OpenStack Swift (Rackspace Cloud Files, Blomp Cloud Storage, Memset Memstore, OVH)
\ (swift)
41 / Oracle Cloud Infrastructure Object Storage
\ (oracleobjectstorage)
42 / Pcloud
\ (pcloud)
43 / PikPak
\ (pikpak)
44 / Pixeldrain Filesystem
\ (pixeldrain)
45 / Proton Drive
\ (protondrive)
46 / Put.io
\ (putio)
47 / QingCloud Object Storage
\ (qingstor)
48 / Quatrix by Maytech
\ (quatrix)
49 / SMB / CIFS
\ (smb)
50 / SSH/SFTP
\ (sftp)
51 / Sia Decentralized Cloud
\ (sia)
52 / Storj Decentralized Cloud Storage
\ (storj)
53 / Sugarsync
\ (sugarsync)
54 / Transparently chunk/split large files
\ (chunker)
55 / Uloz.to
\ (ulozto)
56 / Union merges the contents of several upstream fs
\ (union)
57 / Uptobox
\ (uptobox)
58 / WebDAV
\ (webdav)
59 / Yandex Disk
\ (yandex)
60 / Zoho
\ (zoho)
61 / iCloud Drive
\ (iclouddrive)
62 / premiumize.me
\ (premiumizeme)
63 / seafile
\ (seafile)Storage> 22
- Đối với các mục Client ID và Client Secret, bạn có thể bỏ trống bằng cách nhấn Enter hai lần.
- Tại mục scope, chọn 1 để cấp quyền truy cập đầy đủ cho Rclone.
- Tiếp tục bỏ trống hai mục root_folder_id và service_account_file bằng cách nhấn Enter.
Storage> 22
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
Option service account file.
Service Account Credentials JSON file path.
Leave blank normally.
Needed only if you want use SA instead of interactive login.
Leading will be expanded in the file name as will environment variables such as `${RCLONE_CONFIG_DIR}`. Enter a value. Press Enter to leave empty.
service account file>- Khi được hỏi Edit advanced config?, hãy nhập
nvà nhấn Enter. Rclone sẽ cung cấp một liên kết xác thực. Bạn hãy sao chép URL này và dán vào trình duyệt web trên máy tính cá nhân của bạn.
Edit advanced config?
y) Yes
n) No (default)
y/n> nỞ phần:
Use web browser to automatically authenticate rclone with remote?
* Say Y if the machine running rclone has a web browser you can use
* Say N if running rclone on a (remote) machine without web browser access
If not sure try Y. If Y failed, try N.
y) Yes (default)
n) No
y/n> Nếu như VPS của bạn có giao diện đồ họa (GUI) thì chọn y nếu không thì chọn n. Trong trường hợp này VPS của mình chỉ sử dụng dòng lệnh nên mình sẽ chọn n. Tùy chọn này cho phép Rclone mở trình duyệt trên máy tính nên nếu VPS chỉ có dòng lệnh thì không thể mở được.

Sau đó bạn qua một máy có trình duyệt (VD: máy cá nhân), nơi cũng có cài Rclone cùng phiên bản, rồi chạy lệnh: rclone authorize "drive" xxxxxx đã hiển thị trước đó

Khi chạy trên máy có browser, Rclone sẽ mở link Google Login. Bạn tiến hành đăng nhập và sau đó Rclone sẽ in ra một chuỗi JSON (token).



Sau đó bạn quay lại máy cá nhân và lấy code.

Bạn copy sau đó dán vào phần config_token ở máy VPS trước đó:

Với câu hỏi Configure this as a team drive?, bạn hãy nhập n.
If your browser doesn't open automatically go to the following link: <mark><mark style="background-color:#ffffff" class="has-inline-color has-vivid-cyan-blue-color">https://accounts.google.com/o/oauth2/auth?access_type=offlinexxxx</mark></mark>
Log in and authorize rclone for access
Enter verification code> 4/AABw8gMKPxxxxxxxxxx
Configure this as a team drive?
y) Yes
n) No
y/n> <mark><mark style="background-color:#ffffff" class="has-inline-color has-vivid-red-color">n</mark></mark>
--------------------- Cuối cùng, Rclone sẽ hiển thị một bản tóm tắt cấu hình. Hãy kiểm tra lại thông tin và nhập
yđể xác nhận. Sau đó, nhậpqđể thoát khỏi trình cấu hình.
--------------------
[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> <mark><mark style="background-color:#ffffff" class="has-inline-color has-vivid-red-color">y</mark></mark>
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> <mark><mark style="background-color:#ffffff" class="has-inline-color has-vivid-red-color">q</mark></mark>
Như vậy, bạn đã hoàn tất việc tạo kết nối giữa Rclone và Google Drive. Từ giờ, bạn có thể sử dụng ‘remote’ này để đồng bộ hóa dữ liệu mà không cần lặp lại các bước trên.
Bước 2: Kết nối Rclone trên VPS Window với các dịch vụ khác (Amazon Drive, OneDrive, Yandex)
Ngoài Google Drive, Rclone còn hỗ trợ nhiều dịch vụ đám mây phổ biến khác như Amazon Drive, OneDrive và Yandex. Quy trình thiết lập kết nối cho các dịch vụ này về cơ bản tương tự như với Google Drive. Sự khác biệt chính nằm ở bước xác thực để lấy access_token.
Một lưu ý quan trọng khi cấu hình OneDrive là bạn cần xác định rõ loại tài khoản đang sử dụng là cá nhân (Personal) hay doanh nghiệp (Business).
Đối với các dịch vụ này, việc xác thực thường được thực hiện trên một máy tính có trình duyệt web (remote machine) thông qua lệnh rclone authorize "tên_cloud".
Dưới đây là ví dụ về bước xác thực cho OneDrive:
Vào thư mục chứa file rclone.exe
rclone config
Chọn Option storage là Microsoft OneDrive.

Microsoft App Client Id - leave blank normally.
client_id>
Microsoft App Client Secret - leave blank normally.
client_secret>
Option region.
Choose national cloud region for OneDrive.
Choose a number from below, or type in your own value of type string.
Press Enter for the default (global).
1 / Microsoft Cloud Global
\ (global)
2 / Microsoft Cloud for US Government
\ (us)
3 / Microsoft Cloud Germany (deprecated - try global region first).
\ (de)
4 / Azure and Office 365 operated by Vnet Group in China
\ (cn)
region> 1 
Option tenant.
ID of the service principal's tenant. Also called its directory ID.
Set this if using
- Client Credential flow
Enter a value. Press Enter to leave empty.
tenant> 1Đây là tuỳ chọn dành cho xác thực kiểu Client Credential flow (thường dùng cho OneDrive/SharePoint doanh nghiệp – Azure AD).
- Tenant ID chính là Directory (tenant) ID trong Azure Active Directory (mỗi tổ chức có một GUID dạng xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).
- Nếu bạn không tự tạo App Registration trên Azure để đăng nhập bằng client_id + client_secret thì bạn bỏ trống (bằng cách nhấn Enter).

Edit advanced config?
y) Yes
n) No (default)
y/n> n
Use web browser to automatically authenticate rclone with remote?
*Say Y if the machine running rclone has a web browser you can use
*Say N if running rclone on a (remote) machine without web browser access
If not sure try Y. If Y failed, try N.
y) Yes (default)
n) No
y/n> yHiện tại mình đang chạy trên VPS window nên sẽ chọn Option y. Trong trường hợp bạn chạy VPS Linux và không có GUI bạn chọn n như hướng dẫn ở phần VPS linux nhé.

Tiếp theo, bạn đăng nhập tài khoản Microsoft.



Sau đó bạn quay lại terminal sẽ hiển thị got code.

Option config_type.
Type of connection
Choose a number from below, or type in an existing value of type string.
Press Enter for the default (onedrive).
1 / OneDrive Personal or Business
\ (onedrive)
2 / Root Sharepoint site
\ (sharepoint)
/ Sharepoint site name or URL
3 | E.g. mysite or https://contoso.sharepoint.com/sites/mysite
\ (url)
4 / Search for a Sharepoint site
\ (search)
5 / Type in driveID (advanced)
\ (driveid)
6 / Type in SiteID (advanced)
\ (siteid)
/ Sharepoint server-relative path (advanced)
7 | E.g. /teams/hr
\ (path)
config_type> 1
Option config_driveid.
Select drive you want to use
Choose a number from below, or type in your own value of type string.
Press Enter for the default (b!74GXiPGeUEi8SzwOdqGGm9BaFCfY6j1Fh6m6lfA2HbYVVYhgYJurRLuRh7QJ2nK5).
1 / ODCMetadataArchive (personal)
\ (b!74GXiPGeUEi8SzwOdqGGm9BaFCfY6j1Fh6m6lfA2HbYVVYhgYJurRLuRh7QJ2nK5)
2 / OneDrive (personal)
\ (xxxxxxxxxxxxxxxx)
3 / AEEE102E-CFF8-4E2A-89C6-03841FF83500 (personal)
\ (b!74GXiPGeUEi8SzwOdqGGm9BaFCfY6j1Fh6m6lfA2HbYFksrkTP08SJug0TvPa-eC)
config_driveid> 2
Drive OK?
Found drive "root" of type "personal"
URL: https://onedrive.live.com?cid=xxxxxxxxxxxxxxxxxxxxxxxxxxxx4PWSELRRZ
y) Yes (default)
n) No
y/n> y
Bước 3: Tạo Script tự động sao lưu và tải lên Cloud
Để tự động hóa việc sao lưu, chúng ta sẽ sử dụng một script. Lưu ý rằng script này yêu cầu Rclone phiên bản 1.35 trở lên. Trong script, kết nối tới dịch vụ đám mây được đặt tên là remote. Nếu bạn đã đặt một tên khác ở bước 1, hãy nhớ cập nhật lại trong script.
- Đầu tiên, tạo một file mới tên là
backup.shtrong thư mục/root/bằng lệnh:
nano /root/backup.sh
- Sao chép toàn bộ nội dung script dưới đây và dán vào file vừa tạo:
#!/bin/bash
# Thư mục cần backup
SOURCE="/$USER/"
# Thư mục đích trên Google Drive
DEST="remote:/backup/$USER"
# Thư mục log
LOGDIR="/var/log/rclone-backup"
mkdir -p "$LOGDIR"
# Tạo timestamp YYYYMMDD_HHMM
DATESTAMP=$(date +"%Y%m%d_%H%M")
LOGFILE="$LOGDIR/backup_$DATESTAMP.log"
echo "[$(date)] Bắt đầu backup $SOURCE lên $DEST" | tee -a "$LOGFILE"
# Lệnh backup
rclone sync "$SOURCE" "$DEST" \
--create-empty-src-dirs \
--log-file="$LOGFILE" \
--log-level INFO
if [ $? -eq 0 ]; then
echo "[$(date)] Backup thành công ✅" | tee -a "$LOGFILE"
else
echo "[$(date)] Backup thất bại ❌" | tee -a "$LOGFILE"
fiỞ biến SOURCE="/$USER/" bạn hãy thay đổi đường dẫn mà bạn muốn backup ở VPS. Ở đây mình dùng biến $USER để lấy thư mục của user root ở đường dẫn /root
- Sau khi dán nội dung, bạn cấp quyền thực thi cho file script:
chmod +x /root/backup.sh- Tiếp theo bạn chạy lệnh để tiến hành backup:
./backup.sh- Để kiểm tra, bạn có thể liệt kê các tệp trong thư mục backup trên Google Drive bằng lệnh:
rclone lsd remote:
Bước 4: Thiết lập Cronjob để tự động hóa sao lưu hàng ngày
Để quá trình sao lưu diễn ra hoàn toàn tự động mà không cần can thiệp thủ công, bạn có thể thiết lập một cronjob. Cronjob sẽ lên lịch để script backup.sh tự động chạy vào một thời điểm cố định hàng ngày.
- Ví dụ, để đặt lịch chạy vào 3:00 sáng mỗi ngày, hãy mở trình soạn thảo crontab:
EDITOR=nano crontab -e- Thêm dòng sau vào cuối file:
0 3 * * * /root/backup.sh > /dev/null 2>&1- Nhấn tổ hợp phím Ctrl+O, sau đó Enter để lưu lại, và Ctrl+X để thoát.
Vậy là bạn đã hoàn tất việc thiết lập hệ thống sao lưu tự động. Kể từ bây giờ, vào lúc 3 giờ sáng mỗi ngày, script sẽ tự động thực thi, sao lưu dữ liệu VPS của bạn và tải lên Google Drive, đồng thời dọn dẹp các bản sao lưu cũ trên VPS sau khi tải lên thành công.
Các lệnh Rclone cơ bản cho người mới
Cấu trúc lệnh chung của Rclone thường là: rclone [lệnh] [tùy chọn] [nguồn] [đích].
Trong đó:
rclone: Lệnh chính.[lệnh]: Hành động muốn thực hiện (ví dụ:copy,sync,ls).[tùy chọn]: Các cờ để điều chỉnh hành vi của lệnh (ví dụ:-Pđể hiển thị tiến trình,--dry-runđể chạy thử nghiệm).[nguồn]: Nơi lấy dữ liệu. Có thể là đường dẫn cục bộ (ví dụ:/home/user/data) hoặc remote (ví dụ:mygdrive:backup_folder).[đích]: Nơi đưa dữ liệu đến. Tương tự như nguồn.
Cú pháp remote_name:path/to/folder được dùng để chỉ định một vị trí trên cloud storage đã cấu hình.
Dưới đây là một số lệnh cơ bản bạn nên biết:
rclone ls [remote]:[path]**: Liệt kê nội dung thư mục trên remote
Chức năng: Tương tự lệnh ls trên Linux hoặc dir trên Windows, dùng để xem danh sách file và thư mục.
Ví dụ:
# Liệt kê toàn bộ nội dung trong root của remote 'mygdrive'
rclone ls mygdrive:
# Liệt kê nội dung thư mục 'documents' trong 'mygdrive'
rclone ls mygdrive:documentsrclone copy [nguồn] [đích]: Sao chép dữ liệu
Chức năng: Sao chép file và thư mục từ nguồn sang đích. Nếu file đã tồn tại ở đích, Rclone sẽ ghi đè (nếu file ở nguồn mới hơn) hoặc bỏ qua. Lệnh này không xóa file ở đích nếu chúng không có ở nguồn.
Ví dụ sao chép file từ VPS lên thư mục vps_backups trên Google Drive (remote mygdrive):
# Sao chép thư mục 'website_data' từ máy cục bộ lên thư mục 'vps_backups/website_data' trên remote 'mygdrive'
rclone copy /home/user/website_data mygdrive:vps_backups/website_data -PTùy chọn -P hoặc --progress giúp hiển thị tiến trình sao chép.
rclone sync [nguồn] [đích]: Đồng bộ hóa dữ liệu
Chức năng:
- Làm cho thư mục đích giống hệt thư mục nguồn.
- File mới hoặc đã thay đổi ở nguồn sẽ được copy sang đích. Lưu ý: File có ở đích nhưng không có ở nguồn sẽ bị xóa ở đích.
- Rất hữu ích cho việc tạo bản sao lưu chính xác hoặc mirror.
Ví dụ đồng bộ thư mục backup /var/backups/website từ VPS lên thư mục daily_backups/website trên Google Drive (remote mygdrive):
# Đồng bộ thư mục '/var/backups/website' từ VPS lên 'mygdrive:daily_backups/website'
# CẢNH BÁO: Lệnh này sẽ xóa các file trong 'mygdrive:daily_backups/website' nếu chúng không tồn tại trong '/var/backups/website'
rclone sync /var/backups/website mygdrive:daily_backups/website -PLuôn cẩn thận với lệnh
sync. Nên sử dụng tùy chọn--dry-runđể kiểm tra những gì Rclone sẽ làm trước khi thực sự chạy lệnh:
rclone sync --dry-run /var/backups/website mygdrive:daily_backups/websiterclone move [nguồn] [đích]: Di chuyển file
Chức năng: Di chuyển file/thư mục từ nguồn sang đích. Sau khi copy thành công, file/thư mục ở nguồn sẽ bị xóa.
Ví dụ:
# Di chuyển thư mục 'old_logs' từ local sang 'mygdrive:archived_logs/'
rclone move /var/log/old_logs mygdrive:archived_logs/rclone delete [remote]:[path]: Xóa file/thư mục trên remote
Chức năng: Xóa file hoặc thư mục (và toàn bộ nội dung bên trong nó).
Ví dụ:
# Xóa file 'temp_upload.zip' trên remote 'mygdrive'
rclone delete mygdrive:temp_upload.zip
# CẢNH BÁO: Xóa toàn bộ thư mục 'old_project' và nội dung bên trong trên 'mygdrive'. Hãy cẩn thận!
rclone delete mygdrive:old_projectLệnh này được dùng để xóa vĩnh viễn (trừ khi dịch vụ cloud của bạn có thùng rác và bạn có thể khôi phục từ đó).
Ứng dụng thực tế của Rclone
Sao lưu dữ liệu từ VPS/Server lên Cloud
Bạn có thể sử dụng rclone sync (để có bản sao lưu mirror) hoặc rclone copy (nếu muốn giữ nhiều phiên bản, ví dụ copy vào thư mục con theo ngày) kết hợp với Cron job (trên Linux) để tạo hệ thống backup tự động hàng ngày/tuần cho dữ liệu website, database (cơ sở dữ liệu) từ VPS lên Google Drive, Amazon S3 hoặc bất kỳ cloud nào khác.
Các bước cơ bản:
- Chuẩn bị script sao lưu: Tạo một file shell script (ví dụ:
backup_vps.sh).
#!/bin/bash
# Script ví dụ để backup thư mục website và dump database MySQL
REMOTE_NAME="mygdrive" # Tên remote Rclone của bạn
BACKUP_SOURCE_WEB="/var/www/html" # Thư mục chứa website
BACKUP_DEST_CLOUD_WEB="$REMOTE_NAME:vps_backups/$(date +%Y-%m-%d)/web"
# (Tùy chọn) Dump database, ví dụ MySQL
# DB_USER="your_db_user"
# DB_PASS="your_db_password"
# DB_NAME="your_database"
# DB_BACKUP_PATH="/tmp/db_backup_$(date +%Y-%m-%d).sql.gz"
# mysqldump -u $DB_USER -p$DB_PASS $DB_NAME | gzip > $DB_BACKUP_PATH
echo "Bat dau backup website..."
rclone sync "$BACKUP_SOURCE_WEB" "$BACKUP_DEST_CLOUD_WEB" --log-file=/var/log/rclone_website_backup.log
# (Tùy chọn) Upload database backup
# echo "Bat dau backup database..."
# rclone copy "$DB_BACKUP_PATH" "$REMOTE_NAME:vps_backups/$(date +%Y-%m-%d)/db/" --log-file=/var/log/rclone_db_backup.log
# rm $DB_BACKUP_PATH # Xóa file dump cục bộ sau khi upload
echo "Backup hoan tat."Lưu ý
2. Thiết lập Cron job: Mở crontab bằng lệnh crontab -e và thêm dòng để chạy script, ví dụ, vào 2 giờ sáng mỗi ngày:
0 2 * * * /path/to/your/backup_vps.sh
Đồng bộ file
Rclone giữ cho các thư mục trên các máy tính khác nhau hoặc giữa VPS và Google Drive luôn cập nhật. Ví dụ, VPS của bạn có thể tạo ra các file log quan trọng và Rclone có thể tự động đồng bộ chúng lên Google Drive để bạn tiện theo dõi hoặc lưu trữ lâu dài.
Chuyển dữ liệu giữa các Cloud
Nếu bạn muốn di chuyển dữ liệu từ Dropbox sang Google Drive, bạn có thể cấu hình remote cho cả hai, sau đó dùng Rclone (chạy trên VPS hoặc máy cục bộ) để rclone copy mydropbox: mygdrive:all_dropbox_files/. Nếu các cloud hỗ trợ server-side transfer, quá trình này sẽ rất nhanh.
Quản lý file từ xa
Rlone cho phép người dùng thao tác nhanh với file trên cloud qua dòng lệnh (dùng rclone ls, rclone delete, rclone mkdir,…) mà không cần tải về toàn bộ hay mở giao diện web.
Đối với ai đang dùng VPS để chạy website hoặc ứng dụng, việc thiết lập backup tự động là bắt buộc. Ngoài tự cài đặt backup với Rclone, bạn cũng có thể chọn các gói VPS tại Vietnix với tính năng backup tự động hàng tuần và khả năng mua thêm các bản backup khi cần.
Câu hỏi thường gặp
Rclone có an toàn không?
Câu trả lời là có, Rclone được cộng đồng đánh giá là an toàn:
– Mã nguồn mở: Cộng đồng có thể kiểm tra mã nguồn để tìm lỗi hoặc lỗ hổng.
– Xác thực OAuth2: Rclone không lưu trữ mật khẩu trực tiếp của bạn cho hầu hết các dịch vụ cloud mà sử dụng token OAuth2 (một chuẩn công nghiệp an toàn cho việc cấp quyền truy cập) được lưu trong file cấu hình rclone.conf.
–Mã hóa client-side: Với tính năng crypt, bạn có thể tự mã hóa dữ liệu trước khi di chuyển các dữ liệu này khỏi máy tính của bạn.
Tuy nhiên, bạn cần bảo vệ file cấu hình rclone.conf cẩn thận, vì file có chứa các token cho phép truy cập vào cloud storage của bạn.
Làm thế nào để chạy Rclone tự động theo lịch?
Sử dụng các công cụ lên lịch tác vụ của hệ điều hành:
– Linux: Dùng cron.
– Windows: Dùng Task Scheduler. Bạn tạo một tác vụ mới, đặt lịch trình (trigger), và hành động (action) là chạy rclone.exe với các lệnh và tham số mong muốn.
– macOS: Có thể dùng cron hoặc launchd.
Có thể dùng Rclone để mount (gắn kết) cloud storage như một ổ đĩa cục bộ được không?
Câu trả lời là có, Rclone có lệnh rclone mount cho phép bạn gắn kết một remote cloud (ví dụ: Google Drive) thành một thư mục trên hệ thống file của bạn. Sau đó, bạn có thể truy cập file trên cloud như thể chúng nằm trên ổ cứng cục bộ.
Lệnh copy và sync khác nhau như thế nào?
Lệnh copy trong Rclone chỉ sao chép các tệp và thư mục từ nguồn sang đích mà không xóa bất kỳ dữ liệu nào đã tồn tại ở đích, kể cả khi các tệp đó không còn ở nguồn.
Ngược lại, lệnh sync sẽ đồng bộ hóa toàn bộ nội dung giữa nguồn và đích, nghĩa là ngoài việc sao chép và cập nhật các tệp mới hoặc đã thay đổi, lệnh này còn tự động xóa mọi tệp hoặc thư mục ở đích nếu chúng không còn tồn tại ở nguồn, đảm bảo đích giống hệt nguồn
Kết luận
Rclone là một công cụ dòng lệnh cực kỳ mạnh mẽ và đa năng cho việc quản lý, đồng bộ và sao lưu dữ liệu đám mây. Qua bài viết này, hy vọng bạn đã nắm được những kiến thức cơ bản về Rclone là gì, cách cài đặt, cấu hình remote với Google Drive, các lệnh thường dùng và một số ứng dụng thực tế, đặc biệt là việc sao lưu VPS.




