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.
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 configrclone config showrclone listremotesrclone config show remote:rclone config create remote: s3rclone config delete remote:Browse & List 5
rclone lsd remote:rclone ls remote:pathrclone lsl remote:pathrclone tree remote:pathrclone size remote:bucketSync & Copy 6
rclone sync /local remote:bucketrclone copy /local remote:bucketrclone move /local remote:bucketrclone sync remote:bucket /local --dry-runrclone bisync /local remote:bucketrclone copyto src.txt remote:dst.txtFilter & Rules 6
rclone sync /local remote:bucket --include "*.txt"rclone sync /local remote:bucket --exclude "*.log"rclone sync /local remote:bucket --exclude-from rules.txtrclone sync /local remote:bucket --filter-from filter.txtrclone sync /local remote:bucket --max-size 10Mrclone sync /local remote:bucket --ignore-sizeMount & Serve 6
rclone mount remote:bucket /mnt/cloud --vfs-cache-mode fullrclone mount remote:bucket /mnt/cloud --daemonrclone serve http remote:bucket --addr :8080rclone serve sftp remote:bucket --addr :2022rclone serve webdav remote:bucket --addr :8080rclone rcd --rcCrypt & Verify 6
rclone crypt create remote:encrypted remote:plainrclone crypt check remote:encrypted remote:plainrclone check /local remote:bucketrclone dedupe remote:bucketrclone hashsum md5 remote:bucketrclone cleanup remote:bucketParameter matrix
| Parameter | Effect | Example |
|---|---|---|
sync vs copy vs move | sync mirrors and deletes extras on the destination; copy only adds; move deletes the source after transfer | rclone sync /local remote:bucket |
--include / --exclude / --filter-from | Scope a sync: include as whitelist, exclude as blacklist, filter-from reads both kinds from a file | rclone sync /local remote:bucket --exclude-from rules.txt |
--vfs-cache-mode full | Cache remote files locally for mount reads and writes, at the cost of disk and latency | rclone mount remote:bucket /mnt/cloud --vfs-cache-mode full |
--dry-run | Print the planned operations without transferring anything; mandatory before a bulk run | rclone 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
1See exactly what a transfer will do before running it
rclone sync remote:bucket /local --dry-rundry-run prints the plan without executing; check for unwanted deletions, then drop the flag.
2Verify whether both sides really agree
rclone check /local remote:bucketMismatches are listed, which tells you whether --ignore-size or a fresh transfer is needed.
3Investigate duplicates and leftover objects
rclone dedupe remote:bucketIt 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-runThe 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 fullThe 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:plainHold 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