I prefer rsync over cp or scp:
| 1. Delta-transfer | Delta-transfer algorithm only sends the bytes that have changed. |
| 2. Resilient and repeatable | The --partial flag picks up where transfer fails. |
| 3. Metadata preservation | Preserves permissions and ownership, symbolic links, and timestamps (critical for audit trails and incremental backup logic). |
| 4. Dry run | Simulate a transaction with --dry-run. |
Examples
1. Remote Push: Sending local data to a server
Force SSH for the transport layer with -e ssh.
rsync -avz -e ssh /local/path/ user@remote_host:/remote/path/
2. Remote pull from a server
Use this to pull logs or database dumps for local analysis.
rsync -avz -e ssh user@remote_host:/remote/path/ /local/path/
3. Backup to external drive
On Fedora, external drives are automatically mounted under /run/media/. This command creates a mirror and --delete removes files no longer on the source.
rsync -av --progress --delete /home/user/Documents/ /run/media/user/ExternalDrive/Backup/
Final Verdict
Stop copying and start synchronizing but remember the --dry-run flag!