rclone Cheatsheet - Cloud Storage Sync, Copy & Check

rclone speaks to S3, object stores, cloud drives and plain local directories with one command set. Setup means defining named remotes, after which every path is written as remote:path. The part that needs judgement is verb semantics: copy adds without removing, sync makes the destination identical to the source and deletes whatever is extra there, and move also removes the local side. Mis-picking sync is often irreversible, so run --dry-run first, review the file list, then add -v or --stats to watch throughput while it runs. The sheet groups remote configuration, browsing and listing, sync and copy, include and exclude rules, mounting and serving, and crypt plus checksum options. Mounting depends on a fuse implementation, and random writes against a mounted remote generally need --vfs-cache-mode set appropriately. Throttling with --bwlimit and --transfers keeps a backup from saturating an office link, checksum verification catches silent corruption, and serve or mount expose a remote as a local path when downstream tools cannot speak the protocol natively.

SysOps·35 commands·Last updated 2026-07-21
rcloneCloud StorageSyncBackup

Typical Use Case

For operators and data engineers moving data between a local directory and object storage (S3, drives, and other remotes). This sheet sorts rclone into four layers: configuration (config / crypt create / config show), inspection (lsd / ls / tree / size / check / dedupe / hashsum), transfer (sync / copy / move / copyto / bisync with the include, exclude and filter rules), and exposure (mount / serve http / serve sftp / serve webdav / rcd). It fits migrations and backups, mounting cloud drives, and validating sync scope with --dry-run before committing to a real run.

Config & Connect 6

rclone config
Interactive remote config
rclone config show
Show all remote configs
rclone listremotes
List configured remote names
rclone config show remote:
Show a remote's config
rclone config create remote: s3
Create a remote non-interactively
rclone config delete remote:
Delete a remote config

Browse & List 5

rclone lsd remote:
List dirs under a remote root
rclone ls remote:path
Recursively list all remote files
rclone lsl remote:path
List files with size and mtime
rclone tree remote:path
Show remote dirs as a tree
rclone size remote:bucket
Sum remote size and file count

Sync & Copy 6

rclone sync /local remote:bucket
Sync local to remote (one-way, deletes extras)
rclone copy /local remote:bucket
Copy to remote (keeps target files)
rclone move /local remote:bucket
Move to remote (deletes source after)
rclone sync remote:bucket /local --dry-run
Dry-run to preview a sync
rclone bisync /local remote:bucket
Two-way sync of two dirs
rclone copyto src.txt remote:dst.txt
Copy and rename a single file

Filter & Rules 6

rclone sync /local remote:bucket --include "*.txt"
Sync .txt files only
rclone sync /local remote:bucket --exclude "*.log"
Exclude .log files
rclone sync /local remote:bucket --exclude-from rules.txt
Read exclude rules from a file
rclone sync /local remote:bucket --filter-from filter.txt
Read filter rules from a file
rclone sync /local remote:bucket --max-size 10M
Sync files smaller than 10M
rclone sync /local remote:bucket --ignore-size
Ignore size, compare by time only

Mount & Serve 6

rclone mount remote:bucket /mnt/cloud --vfs-cache-mode full
Mount remote as a local dir (full cache)
rclone mount remote:bucket /mnt/cloud --daemon
Mount as a daemon
rclone serve http remote:bucket --addr :8080
Serve remote files over HTTP
rclone serve sftp remote:bucket --addr :2022
Serve remote files over SFTP
rclone serve webdav remote:bucket --addr :8080
Serve remote files over WebDAV
rclone rcd --rc
Start the remote-control API

Crypt & Verify 6

rclone crypt create remote:encrypted remote:plain
Create an encrypted remote
rclone crypt check remote:encrypted remote:plain
Check an encrypted remote
rclone check /local remote:bucket
Check source vs target consistency
rclone dedupe remote:bucket
Find and handle duplicate files
rclone hashsum md5 remote:bucket
Compute remote file MD5 hashes
rclone cleanup remote:bucket
Clean up leftover remote files

Parameter matrix

ParameterEffectExample
sync vs copy vs movesync mirrors and deletes extras on the destination; copy only adds; move deletes the source after transferrclone sync /local remote:bucket
--include / --exclude / --filter-fromScope a sync: include as whitelist, exclude as blacklist, filter-from reads both kinds from a filerclone sync /local remote:bucket --exclude-from rules.txt
--vfs-cache-mode fullCache remote files locally for mount reads and writes, at the cost of disk and latencyrclone mount remote:bucket /mnt/cloud --vfs-cache-mode full
--dry-runPrint the planned operations without transferring anything; mandatory before a bulk runrclone sync remote:bucket /local --dry-run

Common pitfalls

SymptomFiles already on the destination disappear after running sync.

Causesync is a mirroring operation and deletes destination files that are absent from the source.

FixRun rclone sync remote:bucket /local --dry-run first to read the plan; use copy when you only add files.

SymptomRepeated syncs re-transfer huge numbers of files and run far slower than expected.

CauseMtime or size metadata does not match, so rclone considers files changed (common across transports).

FixAdd --ignore-size to compare times only, or run rclone check /local remote:bucket to find genuinely different files.

SymptomAfter mounting, reads and writes crawl and local disk fills up quickly.

CauseThe vfs cache mode decides how much remote content lands locally; full caches the most aggressively.

FixSwitch to a lighter mode such as --vfs-cache-mode writes, cap the cache directory, and clear leftovers with rclone cleanup remote:bucket.

SymptomAuth errors, or the remote name is reported as not found.

CauseThe remote path must use the remote:path form, or the running user cannot read that rclone config.

FixConfirm the name with rclone listremotes, then check its config with rclone config show remote:.

Troubleshooting

  1. 1See exactly what a transfer will do before running it

    rclone sync remote:bucket /local --dry-run

    dry-run prints the plan without executing; check for unwanted deletions, then drop the flag.

  2. 2Verify whether both sides really agree

    rclone check /local remote:bucket

    Mismatches are listed, which tells you whether --ignore-size or a fresh transfer is needed.

  3. 3Investigate duplicates and leftover objects

    rclone dedupe remote:bucket

    It interactively lists suspected duplicates for you to pick a winner; clear leftovers with rclone cleanup remote:bucket.

Command Examples

Preview a sync without transferring anything

rclone sync remote:bucket /local --dry-run

The listing spells out what would be transferred and what would be deleted; remove the flag once the plan looks right.

Sync while excluding every log file

rclone sync /local remote:bucket --exclude "*.log"

Exclusions are matched as globs, and once the list grows it is easier to keep the patterns in a file and pass --exclude-from rules.txt.

Mount a remote with full VFS caching

rclone mount remote:bucket /mnt/cloud --vfs-cache-mode full

The mount point needs fuse, and the cache genuinely occupies local disk, so choose a partition with plenty of space.

Verify a crypt remote against its plain counterpart

rclone crypt check remote:encrypted remote:plain

Hold off on deleting the encrypted directory until this passes, because a lost crypt password means the data is unrecoverable.

Common Pitfalls

  • sync deletes destination files that do not exist on the source, so always run a --dry-run first and read the deletion list.
  • Prefer --vfs-cache-mode full when mounting, otherwise large transfers crawl; even with caching, reserve real disk space for it.
  • Do not clean up the original encrypted directory or rotate the crypt password before a check passes; a lost crypt password means permanently unreadable data.
  • A typo in a glob pattern inside a rules file is not an error condition, it just silently syncs the wrong set, so re-run a dry-run after editing rules.
  • On auth failures or unknown remote names, list what exists with rclone listremotes, then inspect that entry with rclone config show remote:.

Tips

  • sync is one-way and deletes extras; copy is safer (no deletes).
  • mount needs FUSE (macFUSE/macOS, fuse3/Linux); add --vfs-cache-mode full.
  • rclone resumes interrupted big-file transfers.
  • --progress shows live speed; --verbose gives detailed logs.
  • --transfers N sets concurrent file count.
  • --bwlimit 1M caps bandwidth to avoid saturating the network.

FAQ

How exactly do sync, copy and move differ?

copy only adds what is missing on the destination and never removes anything there, which makes it the safe option. sync aligns the destination one-way with the source, so files present on the destination but absent from the source get deleted; it is the only one of the three that removes destination data. move is copy plus deleting the source file once the transfer succeeds. Pick copy for backups where nothing should ever disappear, and reserve sync for cases where the remote is the single source of truth.

How can I preview what a transfer will do before running it for real?

Add --dry-run, as in rclone sync remote:bucket /local --dry-run: it prints the operations it would perform without transferring anything. Read that listing, confirm nothing important is about to be touched, then drop the flag and execute. This is the habit worth making automatic for any bulk operation.

Reads and writes stutter after mounting and the local disk fills up fast. What is the fix?

Add --vfs-cache-mode full so remote files are cached locally first: writes land on disk and are uploaded afterwards. The trade-off is disk usage and extra latency, so put the mount point on a partition with room. The alternative to mounting is exposing the same remote as a service with rclone serve http, serve sftp or serve webdav.

How do I confirm a crypt remote actually holds intact data?

Run rclone crypt check remote:encrypted remote:plain to compare the encrypted remote against the plain one. Until that check passes, do not delete the original encrypted directory and do not rotate the crypt password: lose the password and there is no recovery path for anything encrypted afterwards.

What is the difference between --exclude-from and --filter-from?

--exclude-from reads a pure blacklist: every line in the file is a pattern to skip, which is easy to maintain. --filter-from reads full filter rules, so the file may contain both include and exclude entries, with the include rules taking precedence, which suits whitelist-style selection. Patterns in either file are matched as globs, so check the syntax before relying on the result.

Official References

Each command links to its official documentation below, so you can verify the latest usage and read deeper.

Maintained by LaoHand

Publicly updated on Jul 21, 2026, continuously proofread against official docs.

Contact Us

Wrong command or description? Send us corrections, business inquiries or product feedback by email.

Contact Us