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

https://rclone.org/install/

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ành

    rclone 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://rclone.org/install/

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

https://forums.plex.tv/t/plex-cloud-is-dead-whats-the-best-alternative-vps-or-nas-with-google-drive/307609/53

Them ‘man update-rc.d’

https://help.ubuntu.com/community/UbuntuBootupHowto