Xin chào các bạn, ngày hôm nay chúng ta sẽ cùng nhau thảo luận về một chủ đề: Rclone.
Rclone là một công cụ dòng lệnh mạnh mẽ được sử dụng để đồng bộ hóa, sao lưu, chia sẻ, và quản lý dữ liệu trên các dịch vụ lưu trữ đám mây cũng như giữa các hệ thống file.
Ok mình cùng bắt đầu thôi.
Install
- Linux
Ubuntu : apt install rclone Cenos : yum install rclone Các alpine image : apt-get install rclone
- MacOs
Brew : brew install rclone MacPorts : sudo port install rclone Curl : cd && curl -O https://downloads.rclone.org/rclone-current-osx-amd64.zip unzip -a rclone-current-osx-amd64.zip && cd rclone-*-osx-amd64 sudo mkdir -p /usr/local/bin sudo mv rclone /usr/local/bin/ cd .. && rm -rf rclone-*-osx-amd64 rclone-current-osx-amd64.zip
- Windows
Tải bản rclone.exe tùy theo phiên bản win : https://rclone.org/downloads/ Winget : winget install Rclone.Rclone
Config
- Sử dụng lệnh : rclone config để show list config cho các s3 khác nhau. Nếu chưa có sẽ hiện
No remotes found, make a new one?
n) New remote
s) Set configuration password
q) Quit config
-
Chọn n để tạo mới và đặt tên.
-
Sau khi đặt tên sẽ hiện ra bảng category cho từng field. sau đây sẽ là cách cọn để config cho S3!
Storage : 4 Provider : 1 Env_auth : 1 access_key_id : S3 key secret_access_key : S3 secret key Region : 1 endpoint : s3 https endpoint location_constraint : Thay vì chọn, hãy nhập tên bucket muốn sync file (Ở đây là crm-storage) acl : Đây là chọn quyền cho file. Chọn 3 server_file_encrytion : 1 (vtiger không cần hash tên file) sse_kms_key_id : 1 storage_class : 2 Edit advanced config : 2 Sau đó hệ thống sẽ confirm lại những thông tin đã nhập. Nhập y để đồng ý
Cấu hình sẽ như này : Tên : test remote
Sync file
-
Mô tả: Lệnh rclone sync được sử dụng để đồng bộ hóa toàn bộ nội dung giữa một nguồn (source) và một đích (destination). Lệnh này sẽ xóa các tệp và thư mục trên đích nếu chúng không còn tồn tại trên nguồn, đảm bảo đích có nội dung giống hệt nguồn.
-
Cấu trúc câu lệnh rclone :
rclone sync /local/path "config:path"
-
Trong đó :
rclone sync là command
/local/path là folder cần clone tại local (source)
config là config name ở trên
path là folder của bucket (destination)
Ví dụ : rclone sync storage "crm_s3:/crm-storage/storage" --progress
Copy file
-
Mô tả: Lệnh rclone copy được sử dụng để sao chép tệp và thư mục từ một nguồn (source) đến một đích (destination). Không giống như sync, lệnh này không xóa các tệp hoặc thư mục đã tồn tại trên đích, ngay cả khi chúng không còn tồn tại trong nguồn.
-
Cấu trúc câu lệnh rclone :
rclone copy /local/path "config:path"
-
Trong đó :
rclone sync là command
/local/path/ là folder cần clone tại local (source)
config là config name ở trên
path là folder của bucket (destination)
Kiểm soát hành vi xóa
Rclone cung cấp các tham số để kiểm soát hoặc ngăn chặn việc xóa:
Tham số | Tác dụng |
---|---|
--delete-during | (Mặc định) Xóa tệp trên remote song song với quá trình đồng bộ. |
--delete-before | Xóa tệp trên remote trước khi bắt đầu tải lên (ít được dùng). |
--delete-after | Xóa tệp trên remote chỉ sau khi tất cả quá trình đồng bộ đã hoàn tất. |
--dry-run | Chạy thử mà không thực hiện bất kỳ thay đổi nào (kể cả xóa). |
--ignore-existing | Bỏ qua các tệp đã tồn tại và không thực hiện bất kỳ hành động xóa nào. |
--ignore-deletes | Không xóa bất kỳ tệp nào trên remote. |
Ví dụ : rclone sync /local/path "config:path" --delete-after
Tham số thêm cho command
Column 1 | Column 2 |
---|---|
--ignore-existing | Không ghi đè tệp đã tồn tại trên remote. |
--create-empty-src-dirs | Tạo các thư mục trống trên remote. |
--size-only | So sánh tệp dựa trên kích thước, bỏ qua thời gian sửa đổi. |
--checksum | So sánh tệp bằng checksum (nội dung tệp). |
--backup-dir | Chuyển tệp cũ bị ghi đè/xóa vào thư mục backup. |
--dry-run | Chạy thử, không thực hiện thay đổi thực tế. |
--progress | Hiển thị tiến trình chi tiết. |
--exclude | Loại trừ tệp/thư mục cụ thể khỏi đồng bộ. |
--include | Chỉ đồng bộ tệp/thư mục cụ thể. |
--max-age / --min-age | Đồng bộ tệp dựa trên thời gian sửa đổi. |
Tóm tắt cơ chế hoạt động
- Đồng bộ hóa nội dung mới từ source sang remote:
- Thêm tệp mới.
- Cập nhật tệp đã thay đổi.
- Xóa các tệp hoặc thư mục trên remote:
- Xóa những tệp không còn tồn tại trong source.
Trên đây là bài viết đầu tay về tổng quan Rclone của mình.
Cảm ơn các bạn đã dành thời gian.
Mình là Hiếu
Một Developer tập tành học DevOps.
Hẹn gặp các bạn trong bài viết sắp tới.