Cài đặt, cấu hình và sử dụng rclone để quản lý dữ liệu trên mây
Bài viết sẽ được cập nhật …
Cài đặt rclone
Tải scrip và chạy sẽ cài đặt rclone trên debian
curl https://rclone.org/install.sh | sudo bash
Kiểm tra phiên bản
rclone
hiện hànhrclone version
Sử dụng rclone
rclone sử dụng dòng lệnh là chính và có cấu trúc cơ bản như sau:
rclone <tên lệnh> -<tham số>
Lệnh rclone config
để kiểm tra vị trí mặc định hoặc khởi tạo file config lưu ở vị trí file mặc định, thông thường nó được lưu ở vị trí sau /root/.config/rclone/rclone.conf
mkdir /root/GoogleDrive
rclone mount DriveName:Folder LocalFolder --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --umask 000
DriveName: Tên của remote trong rclone Folder thư mục trên Google Drive LocalFolder thư mục trên máy VPS
Ví dụ
rclone mount gdrive:media /root/GoogleDrive --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --umask 000
Sau khi mount thành công, hãy nhập lệnh df -h để xem nó!
Tham khảo
Cấu hình rclone
rclone config
Current remotes:
Name Type
==== ====
gdrive 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> n
name> gcrypt
Type of storage to configure.
Enter a string value. Press Enter for the default ("").
Choose a number from below, or type in your own value
...............
9 / Encrypt/Decrypt a remote
\ "crypt"
...............
26 / http Connection
\ "http"
Storage> 9
** See help for crypt backend at: https://rclone.org/crypt/ **
Remote to encrypt/decrypt.
Normally should contain a ':' and a path, eg "myremote:path/to/dir",
"myremote:bucket" or maybe "myremote:" (not recommended).
Enter a string value. Press Enter for the default ("").
remote> gdrive:media
How to encrypt the filenames.
Enter a string value. Press Enter for the default ("standard").
Choose a number from below, or type in your own value
1 / Don't encrypt the file names. Adds a ".bin" extension only.
\ "off"
2 / Encrypt the filenames see the docs for the details.
\ "standard"
3 / Very simple filename obfuscation.
\ "obfuscate"
filename_encryption>
Option to either encrypt directory names or leave them intact.
Enter a boolean value (true or false). Press Enter for the default ("true").
Choose a number from below, or type in your own value
1 / Encrypt directory names.
\ "true"
2 / Don't encrypt directory names, leave them intact.
\ "false"
directory_name_encryption>
Password or pass phrase for encryption.
y) Yes type in my own password
g) Generate random password
n) No leave this optional password blank
y/g/n> g
Password strength in bits.
64 is just about memorable
128 is secure
1024 is the maximum
Bits> 128
Your password is: RKrIVshLxxxxxxxxxxxxxx
Use this password? Please note that an obscured version of this
password (and not the password itself) will be stored under your
configuration file, so keep this generated password in a safe place.
y) Yes
n) No
y/n> y
Password or pass phrase for salt. Optional but recommended.
Should be different to the previous password.
y) Yes type in my own password
g) Generate random password
n) No leave this optional password blank
y/g/n> g
Password strength in bits.
64 is just about memorable
128 is secure
1024 is the maximum
Bits> 128
Your password is: lFn9F5xYd6SNxxxxxxxxxx
Use this password? Please note that an obscured version of this
password (and not the password itself) will be stored under your
configuration file, so keep this generated password in a safe place.
y) Yes
n) No
y/n> y
Edit advanced config? (y/n)
y) Yes
n) No
y/n> n
Remote config
--------------------
[gcrypt]
type = crypt
remote = gdrive:media
password = *** ENCRYPTED ***
password2 = *** ENCRYPTED ***
--------------------
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y
Current remotes:
Name Type
==== ====
gcrypt crypt
gdrive 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
Mount ổ đĩa (thư mục) trên mây vào local
Linux
rclone mount gdrive: /home/gdrive \
--allow-other \
--bind 192.168.1.11 \
--buffer-size 256M \
--dir-cache-time 72h \
--drive-chunk-size 32M \
--log-level INFO \
--log-file /logs/rclone.log \
--timeout 1h \
--umask 002 \
--vfs-read-chunk-size 128M \
--vfs-read-chunk-size-limit off \
--rc
Windows
rclone mount gcrypt-data: G: --config "h:\.config\rclone\rclone.conf" --vfs-cache-mode writes --local-no-check-updated --buffer-size 512M --fast-list
rclone mount gdrive: G:
rclone mount gdrive: G: --config "c:\Users\hahuan\.config\rclone\rclone.conf" --read-only --allow-non-empty --allow-other --dir-cache-time 72h --buffer-size 512M --drive-chunk-size 128M --vfs-read-chunk-size 32M --vfs-read-chunk-size-limit off
Giải thích các tham số:
Lưu ý: Thực hiện các thao tác như kiểm tra dung lượng, copy, sync trên VPS bạn nên dùng chương trình screen để khi tắt cửa sổ SSH thì lệnh vẫn còn thực thi
Kiểm tra dung lượng của thư mục trước khi thực hiện các thao tác copy, move, sync …
rclone size remote:thu-muc-can-kiem-tra
rclone mount gdrive: G: --vfs-cache-mode writes --allow-non-empty --allow-other --vfs-read-chunk-size 32M --cache-db-purge --fast-list --poll-interval 10m
rclone mount gdrive: G:
fusermount -u G:
rclone mount –read-only gcache: G:
Running rclone as a system service on boot with https://nssm.cc :)
Copy dữ liệu
Từ local lên remote
Ví dụ:
rclone copy /mnt/usb/ gcrypt-data: -P --checkers 3 --log-file /var/log/rclone.log -v --tpslimit 3 --transfers 3 --drive-chunk-size 32M
Từ remote xuống local
Ví dụ:
rclone copy gdrive:data/calibrelibrary /data/local/calibrelibrary -P --log-file /logs/rclone/copy.log -v
Từ remote đến remote
rclone copy gcrypt-data:media gcrypt-media: -P --checkers 3 --log-file /var/log/rclone.log -v --tpslimit 3 --transfers 3 --drive-chunk-size 32M
Đồng bộ dữ liệu một chiều
Lưu ý: cực kì cẩn thận khi xài lệnh đồng bộ dữ liệu một chiều vì có thể bạn sẽ xóa những dữ liệu đã có sẵn ở thư mục đích
Gdrive
BOX
rclone sync /data/usb/ box: -P --checkers 3 --log-file /logs/rclone/upload.log -v --tpslimit 3 --transfers 3
Di chuyển dữ liệu
rclone move /data/local/ gupload: -P --checkers 3 --log-file /logs/rclone/upload.log -v --tpslimit 3 --transfers 3 --drive-chunk-size 32M --delete-empty-src-dirs
root@homeserver:~# rclone move /data/local/ gcrypt: -P --checkers 3 --log-file /logs/rclone/upload.log -v --tpslimit 3 --transfers 3 --drive-chunk-size 32M --delete-empty-src-dirs
Transferred: 1.137G / 2.369 GBytes, 48%, 2.598 MBytes/s, ETA 8m5s
Errors: 0
Checks: 16 / 16, 100%
Transferred: 16 / 34, 47%
Elapsed time: 7m27.9s
Transferring:
* 4 Support, Resistance,…)/Video 24A Wedges.mp4: 15% /69.809M, 1.011M/s, 58s
* 4 Support, Resistance,…)/Video 24B Wedges.mp4: 6% /83.041M, 1.360M/s, 57s
* 4 Support, Resistance,…eo 23B Final Flags.mp4: 86% /69.131M, 1.072M/s, 8s
rclone size gupload:video/2.zip rclone copy gupload:video/2.zip /data/local –transfers=12
Di chuyển dữ liệu giữa 2 cloud sử dụng rclone?
Di chuyển dữ liệu từ ổ local sang ổ gcrypt (thư mục media mã hóa trên google drive)
Cheat sheet command
rclone mount gcrypt-data: /data/gdata --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --umask 000
Docker
docker run --rm \
--volume ~/.config/rclone:/config/rclone \
--volume /mnt/data:/data:shared \
--user $(id -u):$(id -g) \
--volume /etc/passwd:/etc/passwd:ro --volume /etc/group:/etc/group:ro \
--device /dev/fuse --cap-add SYS_ADMIN --security-opt apparmor:unconfined \
rclone/rclone \
mount gdrive: /data
docker create \
--name=rclone.gdrive \
-it \
--restart=unless-stopped \
--volume ~/.config/rclone:/config/rclone \
--volume /mnt/data:/data:shared \
--user $(id -u):$(id -g) \
--volume /etc/passwd:/etc/passwd:ro --volume /etc/group:/etc/group:ro \
--device /dev/fuse --cap-add SYS_ADMIN --security-opt apparmor:unconfined \
rclone/rclone \
mount gdrive: /data
docker create \
--name=rclone-mount-media \
-it \
--restart=unless-stopped \
--volume ~/.config/rclone:/config/rclone \
--volume /mnt/khu-drive-mediacrypt:/data:shared \
--user $(id -u):$(id -g) \
--volume /etc/passwd:/etc/passwd:ro \
--volume /etc/group:/etc/group:ro \
--device /dev/fuse \
--cap-add SYS_ADMIN \
--security-opt apparmor:unconfined \
rclone/rclone mount khu-drive-mediacrypt: /data \
--vfs-cache-mode writes \
--allow-non-empty \
--allow-other \
--vfs-read-chunk-size 32M \
--cache-db-purge \
--fast-list \
--poll-interval 10m
Kết luận
Tham khảo:
https://www.hackster.io/uladzislau-bayouski/rclone-the-cloud-connected-048422
http://www.linux-magazine.com/Issues/2016/187/Workspace-rclone
http://moo.nac.uci.edu/~hjm/HOWTO-rclone-to-Gdrive.html
Them ‘man update-rc.d’