Rclone: Difference between revisions
| (17 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. | |||
If you do not have sudo, you can download the binary and put it in your <code> | |||
For Windows, rclone is also [https://chocolatey.org/packages/rclone available on Chocolatey] | For Windows, rclone is also [https://chocolatey.org/packages/rclone available on Chocolatey] and WinGET | ||
<pre> | <pre> | ||
choco install rclone | choco install rclone winfsp -y | ||
</pre> | </pre> | ||
* <code>winfsp</code> is needed for <code>rclone mount</code> | |||
==Usage== | ==Usage== | ||
| Line 28: | Line 27: | ||
===Common Flags=== | ===Common Flags=== | ||
[https://rclone.org/flags/ flags] | [https://rclone.org/flags/ flags] | ||
* <code>-n, --dry-run</code> | |||
* <code>-P, --progress</code> show progress (transferred, ETA, elapsed) | * <code>-P, --progress</code> show progress (transferred, ETA, elapsed) | ||
* <code>- | * <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=== | ||
| Line 44: | Line 46: | ||
* I strongly recommend using some kind of cache by setting the vfs cache mode or using a cache backend. | * 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. | ** Just append <code>--vfs-cache-mode full</code> to the end of your mount. | ||
**: The default cache is at <code>.cache/rclone/</code>. | **: The default cache is at <code>~/.cache/rclone/</code>. | ||
** See [https://rclone.org/commands/rclone_mount/#file-caching | ** 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=== | ||
| Line 86: | Line 97: | ||
You can mount on startup using a systemd service: | You can mount on startup using a systemd service: | ||
<pre> | <pre> | ||
# / | # ~/.config/systemd/user/terpmail.service | ||
[Unit] | [Unit] | ||
Description=rclone terpmail | Description=rclone terpmail | ||
[Service] | [Service] | ||
Type=simple | Type=simple | ||
Restart=always | Restart=always | ||
ExecStart=/usr/bin/rclone mount terpmail: ${HOME}/terpmail --vfs-cache-mode full | ExecStart=/usr/bin/rclone mount terpmail: ${HOME}/terpmail --vfs-cache-mode full | ||
ExecStop=/bin/fusermount -u ${HOME}/terpmail | ExecStop=/bin/fusermount -u ${HOME}/terpmail | ||
[Install] | [Install] | ||
WantedBy= | WantedBy=default.target | ||
</pre> | |||
Then run: | |||
<pre> | |||
mkdir ${HOME}/terpmail | |||
systemctl --user daemon-reload | |||
systemctl --user enable terpmail | |||
systemctl --user start terpmail | |||
</pre> | </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. | |||