Dry Run & Testing
Dry Run Flags
| Flag | Purpose |
|---|---|
-n / --dry-run | Preview changes, don't execute |
--itemize-changes | Show what would change and why |
--stats | Show transfer statistics |
-v | List files that would transfer |
-i | Short for --itemize-changes |
Common Patterns
# Basic dry run
rsync -avn src/ dest/
# Dry run with detailed changes
rsync -avn --itemize-changes src/ dest/
# Preview deletions
rsync -avn --delete src/ dest/
# Preview with statistics
rsync -avn --stats src/ dest/
# Test exclude patterns
rsync -avn --exclude='cache/' --exclude='*.log' src/ dest/
# Count what would transfer
rsync -avn src/ dest/ | wc -l
# Count what would be deleted
rsync -avn --delete src/ dest/ | grep "^deleting" | wc -l
# Save dry run to file for review
rsync -avn --itemize-changes src/ dest/ > /tmp/rsync-preview.txt
What Dry Run Doesn't Test
Disk space on destination
Network stability over full transfer
File locks during long transfers
Permission errors on write
SSH timeout on large jobs
tip
Always dry-run before using --delete on production. Review the output carefully — especially lines starting with *deleting.