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. |