Rclone: Difference between revisions

 
(17 intermediate revisions by the same user not shown)
Line 1: Line 1:
rclone<br>
rclone is a super useful tool for copying files to cloud storage such as Google Drive or S3-based object stores.
rsync for cloud storage<br>
[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==
You can download a deb or rpm from their website.<br>
See https://rclone.org/install/<br>
Or you can run the following script
For Linux, you can download a deb or rpm from their website.<br>
<pre>
If you do not have sudo, you can download the binary and put it in your <code>$HOME/.local/bin</code> folder.
curl https://rclone.org/install.sh | sudo bash
</pre>
If you do not have sudo, you can download the binary and put it in your <code>~/bin</code> folder.


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>-n, --dry-run</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 rclone mount file caching] for more options.
** 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>
# /etc/systemd/system/terpmail.service
# ~/.config/systemd/user/terpmail.service
[Unit]
[Unit]
Description=rclone terpmail
Description=rclone terpmail
After=network.target


[Service]
[Service]
Type=simple
Type=simple
Restart=always
Restart=always
User=david
Group=david
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=multi-user.target
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.