Sagar.BlogArticle
All posts
All posts
Linux

scp & rsync — Remote File Transfer

Copy files between local and remote machines using scp for quick copies and rsync for efficient incremental syncing.

March 13, 20255 min read
linuxnetworkingscprsyncfile-transfer

scp — Secure Copy

scp copies files over SSH. Simple to use but copies everything every time (no incremental).

# Local → Remote
scp file.txt user@server:/path/to/dest/
scp -r folder/ user@server:/path/to/dest/   # Recursive

# Remote → Local
scp user@server:/path/to/file.txt ./
scp -r user@server:/path/to/folder/ ./

# Remote → Remote
scp user@server1:/file.txt user@server2:/dest/

# Custom SSH port
scp -P 2222 file.txt user@server:/dest/

rsync — Smart Sync

rsync only transfers changed data — much faster than scp for regular syncs. It also supports compression, deletion, and dry runs.

# Local → Remote
rsync -avz folder/ user@server:/dest/

# Remote → Local
rsync -avz user@server:/path/ ./local/

# Dry run — preview without transferring
rsync -avzn folder/ user@server:/dest/

# Delete files not in source (mirror)
rsync -avz --delete folder/ user@server:/dest/

# Exclude patterns
rsync -avz --exclude='node_modules' --exclude='.git' ./ user@server:/dest/

# Show progress
rsync -avz --progress folder/ user@server:/dest/

# Custom SSH port
rsync -avz -e "ssh -p 2222" folder/ user@server:/dest/

rsync Flags

FlagDescription
-aArchive (preserves permissions, timestamps)
-vVerbose
-zCompress during transfer
-nDry run
--deleteDelete extra files at destination
--progressShow progress

scp vs rsync

Featurescprsync
Incremental❌ Full copy✅ Only changes
Resume❌ No✅ Yes
Compression❌ No✅ Yes
Mirror/delete❌ No✅ Yes
Simplicity✅ SimpleSlightly more complex

Use rsync for regular backups and syncing. Use scp for one-off quick copies. Always do a dry run with -n before using --delete.

Quick Check

Which rsync flag performs a dry run (no actual transfer)?

Exercise

Create a directory ~/test-rsync/ with a few files. Use rsync to copy it to /tmp/rsync-dest/ with verbose and compression flags.