Cách sử dụng Rclone để backup Cloudflare R2 về máy tính cá nhân

Chú ý: luôn có dữ liệu backup website dự phòng trước các thử nghiệm liên quan đến dữ liệu.

Hôm trước tôi đã giới thiệu Cloudflare R2 & cách sử dụng nó để tối ưu hóa cho lưu trữ ảnh WordPress. Lợi ích là rõ ràng, với chi phí gần như 0 với đa số website nhỏ & vừa, tuy nhiên trong tùy chọn (retention policy) up toàn bộ ảnh lên R2 & xóa ảnh ở hosting gốc bạn cần phải thiết lập backup cho R2 vì lúc này các biện pháp backup ở WordPress (như qua plugin UpdraftPlus) sẽ không còn liên quan gì đến ảnh lưu trữ bên ngoài hosting gốc nữa.

Sẽ có người bảo R2 thuộc top an toàn & chắc chắn về dữ liệu rồi, còn phải backup gì nữa! Nhưng họ lại quên mất một điều, backup tồn tại không phải vì quá khứ đã từng chắc chắn thế nào, nó tồn tại vì tương lai có thể xảy ra bất cứ chuyện gì! (mà chuyện gì đấy chưa chắc là lỗi của R2, nhỡ chủ trang thao tác sai xóa hết dữ liệu thì sao, mà còn nhiều chuyện tương tự thế lắm,…).

Chúng ta sẽ sử dụng Rclone, một chương trình dòng lệnh có chất lượng rất cao, cực kỳ phổ biến để quản lý file lưu trên cloud.

Hướng dẫn này áp dụng cho người sử dụng hệ điều hành Windows, mặc dù với các hệ điều hành khác thì cơ bản câu lệnh vẫn vậy, nhưng cần phải lưu ý đến cấu trúc đường dẫn thư mục…

Các bước làm.


A. Tải phần mềm Rclone về

Vào trang Rclone để tải phần mềm về. Tìm mục tải về của Windows và chọn cấu trúc máy tính tương ứng của bạn.

Có 3 cấu trúc sẵn có là:

  • Intel/AMD – 64 Bit
  • Intel/AMD – 32 Bit
  • ARM – 64 Bit

Cách để biết kiến trúc máy của bạn:

Nhấn tổ hợp phím Windows + I > System > About > System type

Ví dụ máy tính của tôi:

Thông tin kiến trúc máy

Thông tin là ‘64-bit operating system, x64-based processor‘ nghĩa là kiến trúc Intel/AMD 64.

Còn ‘64-bit operating system, ARM-based processor‘ nghĩa là ARM 64.

Tải file nén của tương ứng của nó về, bạn giải nén, thư mục sẽ có tên kiểu như rclone-vx.yz.w-windows-amd64, trong đó vx.yz.w chỉ phiên bản, như thời điểm bài này được viết là v.1.72.0

Vào thư mục đó copy toàn bộ file trong đó, rồi qua ổ C trên máy tính, tạo thư mục mới có tên Rclone, tiếp đó paste toàn bộ file vừa copy vào. Như vậy lúc này file chạy đã nằm trong thư mục C:\Rclone


B. Kết nối với Cloudflare R2

Bạn phải vào phần cài đặt của plugin Advanced Media Offloader (hoặc bất kỳ bản ghi nhớ nào, vì nhiều thông tin trong đó Cloudflare R2 không hiển thị lại nên chắc chắn trước đó bạn phải lưu chúng ở đâu đấy thì giờ mới dùng lại được) để chuẩn bị lấy các thông tin xác thực cho R2 (Access Key ID, Secret Access Key, Endpoint URL) nhập vào Rclone.

1. Nhấn Windows, rồi gõ cmd để bật Command Prompt

2. Di chuyển đến thư mục Rclone trong ổ C:

cd C:\Rclone

Copy lệnh trên, ở cmd chuột phải (hoặc Ctrl + V) để paste vào và Enter.

cmd Rclone

3. Chạy lệnh cấu hình

rclone config

3.1 Nhập n để tạo kết nối mới.

3.2 (name) Nhập tên cho kết nối mới (enter name for new remote), ví dụ bku-kiencang

3.3 (storage) Chọn cái Amazon S3 Compliant Storage (lưu trữ tương thích Amazon S3), trong đó có rất nhiều nhà cung cấp và có Cloudflare. Amazon S3 Compliant Storage không phải là chúng ta lưu trên Amazon mà là chỉ các nhà cung cấp tương thích với S3. Thường nó nằm ở số 4. Nếu đúng bấm số 4 rồi Enter.

3.4 (provider) Chọn số tương ứng với Cloudflare R2 Storage (danh sách xếp theo thứ tự ABC nên rất dễ tìm).

3.5 (env_auth) Nhập số 1 để chúng ta nhập thủ công thông tin vào.

3.6 (access_key_id) Nhập Access Key ID vào (lấy từ plugin Advanced Media Offloader mà trước đó khi liên kết với R2 chúng ta đã nhập)

3.7 (secret_access_key) Nhập Secret Access Key vào và Enter.

Mặc định (default) khác nhấn Enter.

3.8 (endpoint) Nhập Endpoint URL vào và Enter.

Gặp default nhấn Enter tiếp, cho đến khi gặp dòng configuration complete (cấu hình hoàn tất) thì bấm y để xác nhận xong, rồi nhấn q để thoát.


C. Chạy lệnh

Sau khi thoát phần tạo, trên cmd bạn sẽ quay ra C:\Rclone

Bạn nhập lệnh sau:

rclone copy bku-kiencang:image-kiencang "C:\local-kiencang" --progress --transfers 16

Trong đó:

  • copy: Copy dữ liệu.
  • bku-kiencang: tên kết nối với R2 mà chúng ta tạo ở lúc nãy ở phần B.
  • image-kiencang: chính là cái Bucket Name trên R2, dĩ nhiên bạn phải nhập chính xác, và đúng với cái của bạn.
  • local-kiencang: là tên thư mục sẽ lưu tại máy tính của bạn, bạn nên tạo trước nó, như ở trên đường dẫn đầy đủ cho thấy thư mục này nằm trong ổ C (có thể chuyển sang ổ khác để phòng lỗi hệ điều hành, cái thường nằm ở ổ C).
  • transfers 16: tăng số lượng kết nối để tải nhanh hơn so với để mặc định. Với điều kiện mạng thông thường, khoảng 30 ngàn ảnh sẽ được kéo về máy tính cá nhân trong vòng 10 – 15 phút.

Ví dụ câu lệnh sau sẽ để sang ổ D:

rclone copy bku-kiencang:image-kiencang "D:\local-kiencang" --progress --transfers 16

Nếu bạn làm đúng, mọi thứ sẽ chạy trông thế này:

Chạy lệnh rclone đúng
File đang tải từ Cloudflare R2 về máy tính cá nhân của tôi

Và bạn vào thư mục tương ứng trên máy tính sẽ thấy ảnh đang được tải về.

Quá trình tải về hoàn tất:

Tải về hoàn tất

Điểm hay của Rclone là ở những lần backup sau nó không tải lại những ảnh đã tải, mà chỉ tải về các ảnh mà trên máy cá nhân chưa có (tức là những ảnh mới up lên web). Điều này giúp quá trình backup nhanh hơn (đặc biệt đúng trên các file ảnh nặng) và đỡ tốn phí data (mặc dù R2 không tính phí data, nhưng đa số cloud khác có tính).


D. Tạo file chạy one-click

Ở trên mỗi lần chạy thì lại phải vào cmd, copy rồi paste lệnh chạy, cũng không mất công gì lắm, nhưng việc lặp lại nhàm chán. Cách hay hơn là chúng ta tạo một file .bat để mỗi lần click vào thì lệnh tự chạy.

Cách làm như sau:

1. Mở notepad

2. Paste thông tin bên dưới vào:

@echo off
title Backup Anh Tu Cloudflare R2
echo Dang ket noi voi Cloudflare R2 de tai anh moi ve...
echo ---------------------------------------------------

:: Di chuyen den thu muc cai Rclone
cd /d C:\Rclone

:: Cau lenh tai du lieu 
rclone copy bku-kiencang:image-kiencang "D:\local-kiencang" --progress --transfers 16

echo ---------------------------------------------------
echo DA HOAN THANH QUA TRINH BACKUP!
echo Ban co the tat cua so nay.
pause

Lưu ý quan trọng: bạn phải thay thế các thông tin cụ thể của bạn vào, cụ thể là các thông tin sau của bạn sẽ khác: bku-kiencang (tên cho kết nối của Rclone với R2), image-kiencang (tên bucket trên R2), D:\local-kiencang (tên, vị trí lưu tại máy tính cá nhân); bạn đặt tên cho chúng ở các phần trước thế nào thì cập nhật tương ứng.

3. Ctrl + S để lưu file

tạo file .bat để chạy one click

Ở phần Save as type chọn All Files.

Ở phần fle name: chọn tên bất kỳ, nhưng đuôi phải là .bat, ví dụ của tôi bku-kiencang.bat

Bạn có thể để file này bất cứ đâu (tiện thì ngoài desktop), và mỗi lần muốn backup thì bật nó lên.

Kiểm tra bằng cách click vào file .bat vừa tạo, bạn sẽ thấy lệnh được chạy, nếu trước đó đã tải ảnh rồi bạn sẽ thấy nó chỉ kiểm tra ảnh để xem có sự khác biệt mới tải về, nếu không khác sẽ không tải:

Test file .bat one-click

Trong hình trên cho thấy, ở lần tải thứ 2 nó mới tải 12 ảnh mới khác biệt về, còn hơn 1900 ảnh đã kiểm tra cho thấy sự giống nhau giữa local và trên cloud (do lần một đã tải về rồi).

Ngoài lề nhỏ: file .bat để ở desktop rất tiện, nhưng cũng dễ lỡ tay xóa mất khi dọn màn hình, do vậy để đỡ mất công tạo lại, bạn nên có một bản sao file này. Ngoài ra máy tính cá nhân nên đặt pass, vì qua thông tin file .bat & thao tác trên máy tính của bạn, người có chuyên môn có thể sử dụng để thay đổi file trên R2.


E. Gợi ý cải tiến thêm

Hoàn thành các bước ở trên là đã tương đối hoàn thiện chức năng backup từ R2 về máy tính cá nhân.

Nếu muốn tự động & an toàn dữ liệu cao hơn nữa, bạn thử tìm hiểu các cái như:

  • Kết nối Rcloud với Google Drive để đẩy dữ liệu lên đây.
  • Tự động hoàn toàn lịch backup trong Windows bằng cách lập lịch giờ cố định hàng tuần (bạn thậm chí không cần one-click): Tuy nhiên cách lên lịch thường chỉ hay khi máy bật thường xuyên & đường truyền mạng rất ổn định, còn không thì one-click file .bat và biết quá trình hoàn thành của nó vẫn tốt hơn, auto hoàn toàn có lẽ chỉ nên triển khai trên các môi trường như VPS khi nó liên tục bật mà thôi.

Có vẻ Rcloud có tài liệu rất phong phú nên bạn thử hỏi các AI như Gemini nó cũng sẽ trả lời chi tiết và chính xác.

Lưu ý nhỏ: Backup sẽ tăng sử dụng Class B Operations (các hoạt động lớp B), mặc dù vậy với 10 triệu operation miễn phí hàng tháng thì như trường hợp 33 ngàn ảnh của tôi, ngày nào cũng backup thì cũng chỉ dùng đến 1 triệu operation. Cái này chỉ lưu ý thêm phòng trường hợp chủ web nào đó có cả vài trăm ngàn ảnh. Trường hợp ấy cách giảm chi phí tốt nhất là giãn thời gian backup ra. Kể cả có 300 ngàn ảnh, thì backup hàng tuần 2 lần cũng chỉ tốn tầm 2.5 triệu operation.

Viết một bình luận