rclone --exclude-from
Exclude-from externalizes filtering logic into reusable rule files, which is essential for production-grade automation. This guide shows how to structure rule files for maintainability so teams can review, version, and safely evolve exclusion policies over time.
Syntax
rclone sync SRC DST --exclude-from /path/to/exclude.rules
Rule File Example
/etc/rclone/app.exclude
**/.git/**
**/node_modules/**
**/*.log
**/.env
rclone sync /srv/app remote:backup/app --exclude-from /etc/rclone/app.exclude
Notes
- Keep one rule per line.
- Store rule files in infra repos, not in ad-hoc shell history.
- Re-test after every rule change.
rclone sync /srv/app remote:backup/app --exclude-from /etc/rclone/app.exclude --dry-run -vv
Examples with Output
1. Use exclude file for app backup
Input command:
rclone sync /srv/app remote:backup/app --exclude-from /etc/rclone/app.exclude --dry-run
Expected output:
NOTICE: loaded exclude rules from file
Would transfer 86 files
2. Exclude from custom path
Input command:
rclone copy /srv/docs remote:backup/docs --exclude-from /opt/rules/docs.exclude --dry-run
Expected output:
NOTICE: using /opt/rules/docs.exclude
Would transfer 45 files
3. Exclude from relative file
Input command:
rclone copy . remote:repo/snapshot --exclude-from ./rules/local.exclude --dry-run
Expected output:
NOTICE: local exclude file applied
Would transfer 63 files
4. Exclude secrets via rule file
Input command:
rclone sync /srv/app remote:backup/app --exclude-from /etc/rclone/secrets.exclude --dry-run
Expected output:
NOTICE: secrets patterns excluded
Would transfer 91 files
5. Combine exclude-from and dry-run verbose
Input command:
rclone copy /srv/app remote:backup/app --exclude-from /etc/rclone/app.exclude --dry-run -vv
Expected output:
DEBUG: Excluded by file rule: .env
INFO : 14 files excluded by rules
6. Exclude vendor and cache
Input command:
rclone sync /srv/www remote:backup/www --exclude-from /etc/rclone/wp.exclude --dry-run
Expected output:
NOTICE: vendor/cache rules loaded
Would transfer 233 files
7. Exclude from env-specific file
Input command:
rclone copy /srv/config remote:backup/config --exclude-from /etc/rclone/prod.exclude --dry-run
Expected output:
NOTICE: prod rule set active
Would transfer 22 files
8. Exclude-from with check
Input command:
rclone copy /srv/data remote:backup/data --exclude-from /etc/rclone/data.exclude --dry-run && rclone check /srv/data remote:backup/data --one-way
Expected output:
NOTICE: transfer preview completed
NOTICE: check completed without differences
9. Exclude old logs file list
Input command:
rclone copy /var/log remote:archive/log --exclude-from /etc/rclone/log.exclude --dry-run
Expected output:
NOTICE: old log rules applied
Would transfer 40 files
10. Exclude-from for media cleanup sync
Input command:
rclone sync /srv/media remote:backup/media --exclude-from /etc/rclone/media.exclude --dry-run
Expected output:
NOTICE: media exclude file loaded
Would transfer 310 files
11. Exclude-from for CI artifact publish
Input command:
rclone copy ./dist remote:releases/app --exclude-from .ci/release.exclude --dry-run
Expected output:
NOTICE: CI exclude rules active
Would transfer 18 files
12. Exclude-from for home backup
Input command:
rclone sync /home/ubuntu remote:backup/home --exclude-from /etc/rclone/home.exclude --dry-run
Expected output:
NOTICE: home exclusions loaded
Would transfer 512 files
13. Exclude-from with bandwidth limit
Input command:
rclone copy /srv/data remote:backup/data --exclude-from /etc/rclone/data.exclude --bwlimit 8M --dry-run
Expected output:
NOTICE: bwlimit set to 8M
Would transfer 74 files
14. Exclude-from with immutable copy
Input command:
rclone copy /srv/releases remote:archive/releases --exclude-from /etc/rclone/releases.exclude --immutable --dry-run
Expected output:
NOTICE: immutable mode active
Would transfer 27 files
15. Exclude-from + checksum
Input command:
rclone copy /srv/app remote:backup/app --exclude-from /etc/rclone/app.exclude --checksum --dry-run
Expected output:
NOTICE: checksum comparison enabled
Would transfer 39 files