Rclone: Difference between revisions
Created page with "rclone<br> rsync for cloud storage<br> [https://rclone.org/ https://rclone.org/]<br> ==Install== ==Usage== ===Setup Services=== <pre> rclone config </pre> ===Mount=== <pre>..." |
|||
(27 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
rclone | rclone is a super useful tool for copying files to cloud storage such as Google Drive or S3-based object stores. | ||
[https://rclone.org/ https://rclone.org/]<br> | [https://rclone.org/ https://rclone.org/]<br> | ||
Rclone is often faster than the built in file explorer due to handling multiple transfers (e.g. <code>--transfers 25</code>). | |||
==Install== | ==Install== | ||
See https://rclone.org/install/<br> | |||
For Linux, you can download a deb or rpm from their website.<br> | |||
If you do not have sudo, you can download the binary and put it in your <code>$HOME/.local/bin</code> folder. | |||
For Windows, rclone is also [https://chocolatey.org/packages/rclone available on Chocolatey] and WinGET | |||
<pre> | |||
choco install rclone winfsp -y | |||
</pre> | |||
* <code>winfsp</code> is needed for <code>rclone mount</code> | |||
==Usage== | ==Usage== | ||
===Setup | ===Setup Backends=== | ||
<pre> | <pre> | ||
rclone config | rclone config | ||
</pre> | </pre> | ||
;Note | |||
* Backends and their configuration options are stored in your config file. | |||
** <code>$HOME/.config/rclone/rclone.conf</code> | |||
===Common Flags=== | |||
[https://rclone.org/flags/ flags] | |||
* <code>-n, --dry-run</code> | |||
* <code>-P, --progress</code> show progress (transferred, ETA, elapsed) | |||
* <code>--stats-one-line</code> show only the total stats | |||
* <code>--transfers N</code> do N simultaneous file transfers (defaults to 4) | |||
* <code>--checkers N</code> (defaults to 8) | |||
===Mount=== | ===Mount=== | ||
[https://rclone.org/commands/rclone_mount/ rclone mount documentation] | |||
<pre> | <pre> | ||
mkdir /path/to/local/mount | mkdir /path/to/local/mount | ||
rclone mount remote:path/to/files /path/to/local/mount | rclone mount remote:path/to/files /path/to/local/mount [flags] | ||
</pre> | </pre> | ||
;Unmount | ;Unmount | ||
* <code>fusermount -u /path/to/local/mount</code> | * <code>fusermount -u /path/to/local/mount</code> | ||
;Notes | |||
* I strongly recommend using some kind of cache by setting the vfs cache mode or using a cache backend. | |||
** Just append <code>--vfs-cache-mode full</code> to the end of your mount. | |||
**: The default cache is at <code>~/.cache/rclone/</code>. | |||
** See [https://rclone.org/commands/rclone_mount/#vfs-file-caching vfs file caching] for more options. | |||
* If you have unlimited data or are using a local mount, you may want to reduce the directory index cache time. | |||
** The default is <code>--dir-cache-time 5m0s</code> for 5 minutes. | |||
**: I usually set 15 seconds for local SFTP mounts. | |||
;Example | |||
Windows: | |||
<pre> | |||
rclone mount t440s-server-local: H: --vfs-cache-mode full --dir-cache-time 5m0s | |||
</pre> | |||
===Sync=== | ===Sync=== | ||
[https://rclone.org/commands/rclone_sync/ rclone sync documentation] | [https://rclone.org/commands/rclone_sync/ rclone sync documentation] | ||
Make source and dest identical, modifying destination only.<br> | |||
Note: This is like copy but it will delete files in the destination.<br> | |||
<pre> | <pre> | ||
rclone sync source:path dest:path [flags] | rclone sync source:path dest:path [flags] | ||
Line 30: | Line 72: | ||
-h, --help help for sync | -h, --help help for sync | ||
</pre> | </pre> | ||
===Copy=== | |||
[https://rclone.org/commands/rclone_copy/ rclone copy] | |||
Copy files from source to dest, skipping already copied | |||
<pre> | |||
rclone copy source:path dest:path [flags] | |||
</pre> | |||
;Notes | |||
* This will overwrite existing files which are different | |||
** Use <code>--ignore-existing</code> to skip existing files | |||
** Use <code>--backup-dir <path></code> to move existing files which would be modified to another folder | |||
==Crypt== | |||
[https://rclone.org/crypt/ https://rclone.org/crypt/] | |||
Crypt allows you to encrypt the files you backup in the cloud. | |||
This is similar to Cryptomator but you don't need to store the encrypted files locally. | |||
Crypt creates fake remotes (Crypt remotes) which represent decrypted versions of paths in real remotes (e.g. Google Drive). | |||
==Mount on Startup== | |||
You can mount on startup using a systemd service: | |||
<pre> | |||
# ~/.config/systemd/user/terpmail.service | |||
[Unit] | |||
Description=rclone terpmail | |||
[Service] | |||
Type=simple | |||
Restart=always | |||
ExecStart=/usr/bin/rclone mount terpmail: ${HOME}/terpmail --vfs-cache-mode full | |||
ExecStop=/bin/fusermount -u ${HOME}/terpmail | |||
[Install] | |||
WantedBy=default.target | |||
</pre> | |||
Then run: | |||
<pre> | |||
mkdir ${HOME}/terpmail | |||
systemctl --user daemon-reload | |||
systemctl --user enable terpmail | |||
systemctl --user start terpmail | |||
</pre> | |||
On Windows, you can create a service using nssm: | |||
# Install <code>nssm</code> | |||
#:<pre>choco install nssm -y</pre> | |||
# Create a service | |||
#:<pre>nssm install my_service</pre> | |||
;Notes | |||
* If using nssm, you will need to specify the full path to the config since it runs as another user. |
Latest revision as of 17:30, 31 August 2023
rclone is a super useful tool for copying files to cloud storage such as Google Drive or S3-based object stores.
https://rclone.org/
Rclone is often faster than the built in file explorer due to handling multiple transfers (e.g. --transfers 25
).
Install
See https://rclone.org/install/
For Linux, you can download a deb or rpm from their website.
If you do not have sudo, you can download the binary and put it in your $HOME/.local/bin
folder.
For Windows, rclone is also available on Chocolatey and WinGET
choco install rclone winfsp -y
winfsp
is needed forrclone mount
Usage
Setup Backends
rclone config
- Note
- Backends and their configuration options are stored in your config file.
$HOME/.config/rclone/rclone.conf
Common Flags
-n, --dry-run
-P, --progress
show progress (transferred, ETA, elapsed)--stats-one-line
show only the total stats--transfers N
do N simultaneous file transfers (defaults to 4)--checkers N
(defaults to 8)
Mount
mkdir /path/to/local/mount rclone mount remote:path/to/files /path/to/local/mount [flags]
- Unmount
fusermount -u /path/to/local/mount
- Notes
- I strongly recommend using some kind of cache by setting the vfs cache mode or using a cache backend.
- Just append
--vfs-cache-mode full
to the end of your mount.- The default cache is at
~/.cache/rclone/
.
- The default cache is at
- See vfs file caching for more options.
- Just append
- If you have unlimited data or are using a local mount, you may want to reduce the directory index cache time.
- The default is
--dir-cache-time 5m0s
for 5 minutes.- I usually set 15 seconds for local SFTP mounts.
- The default is
- Example
Windows:
rclone mount t440s-server-local: H: --vfs-cache-mode full --dir-cache-time 5m0s
Sync
Make source and dest identical, modifying destination only.
Note: This is like copy but it will delete files in the destination.
rclone sync source:path dest:path [flags]
- Flags
--create-empty-src-dirs Create empty source dirs on destination after sync -h, --help help for sync
Copy
Copy files from source to dest, skipping already copied
rclone copy source:path dest:path [flags]
- Notes
- This will overwrite existing files which are different
- Use
--ignore-existing
to skip existing files - Use
--backup-dir <path>
to move existing files which would be modified to another folder
- Use
Crypt
https://rclone.org/crypt/
Crypt allows you to encrypt the files you backup in the cloud.
This is similar to Cryptomator but you don't need to store the encrypted files locally.
Crypt creates fake remotes (Crypt remotes) which represent decrypted versions of paths in real remotes (e.g. Google Drive).
Mount on Startup
You can mount on startup using a systemd service:
# ~/.config/systemd/user/terpmail.service [Unit] Description=rclone terpmail [Service] Type=simple Restart=always ExecStart=/usr/bin/rclone mount terpmail: ${HOME}/terpmail --vfs-cache-mode full ExecStop=/bin/fusermount -u ${HOME}/terpmail [Install] WantedBy=default.target
Then run:
mkdir ${HOME}/terpmail systemctl --user daemon-reload systemctl --user enable terpmail systemctl --user start terpmail
On Windows, you can create a service using nssm:
- Install
nssm
choco install nssm -y
- Create a service
nssm install my_service
- Notes
- If using nssm, you will need to specify the full path to the config since it runs as another user.