Guideschevron_rightStorage

Storage · 6 min read · Updated

rsync vs scp vs rclone

Use scp for a quick one-off copy of a file or folder over SSH. Use rsync for anything you will copy again, such as backups, deployments and large folders: it sends only what changed, can resume an interrupted transfer, and can mirror deletions. Use rclone when one end is cloud or object storage (S3, Backblaze B2, Google Drive and dozens more), since rsync and scp only speak SSH. All three work with a storage box; only rclone works with an S3 bucket.

Side by Side

scp, rsync and rclone compared
Aspectscprsyncrclone
Talks toSSH serversSSH servers (and rsync daemons)70+ backends: S3, SFTP, B2, Google Drive…
SendsEvery file, every timeOnly changed files, and only their changed partsOnly changed files, but each whole
Resumes a broken transferNoYes, with --partialRetries failed files
Mirrors deletionsNoYes, with --deleteYes, with rclone sync
Needs on the other endSSH (SFTP)SSH and rsync installedNothing extra
Best forOne file, right nowRepeated copies and backups over SSHCloud and object storage

scp: the Quick Copy

scp copies files over SSH with the same syntax as cp. Since OpenSSH 9.0 it uses the SFTP protocol underneath. It always sends everything, so it is ideal for one file and wasteful for a folder you copy every night. Note the capital -P for the port:

scp -P 23 backup.tar.gz USER@HOST:backups/
scp -r -P 23 USER@HOST:backups/2026-10 ./restore/

rsync: Only What Changed

rsync compares source and destination and transfers only the difference, down to changed blocks inside a file. It needs rsync installed on both ends. The trailing slash on the source matters: site/ copies the folder's contents, site copies the folder itself.

# Preview, then copy, keeping permissions and times
rsync -avn --partial -e "ssh -p 23" ./site/ USER@HOST:site/
rsync -av  --partial -e "ssh -p 23" ./site/ USER@HOST:site/

# Make the destination an exact mirror (deletes extra files there)
rsync -av --delete -e "ssh -p 23" ./site/ USER@HOST:site/

When rsync stops with a number, rsync error codes explains each one.

rclone: Cloud and Object Storage

rclone is “rsync for cloud storage”: one command that talks to S3-compatible storage, SFTP, Backblaze B2, Google Drive and many more, with parallel transfers and checksums. You define each storage as a named remote once, then copy between any two:

rclone copy ./photos virteche:my-bucket/photos --progress
rclone sync ./photos virteche:my-bucket/photos --dry-run   # check before deleting anything
rclone check ./photos virteche:my-bucket/photos

Using object storage with rclone shows the remote settings, and copying an S3 bucket with rclone moves a whole bucket between providers.

Which to Use

  • One file to or from a server: scp.
  • A nightly copy of a folder to a server or storage box: rsync, or a real backup tool such as Borg or restic if you need history.
  • Anything with S3, Backblaze B2 or another cloud service on one end: rclone.
  • Large files that change a little at a time (VM images, databases): rsync over SSH.

Amazon S3, Backblaze B2 and Google Drive are trademarks of their respective owners. Virteche is not affiliated with or endorsed by them. Details about their products come from their public documentation as of the date at the top of this guide.

Common Questions

  • Is rsync faster than scp?

    For a first copy, about the same: both send every byte over SSH. For every copy after that, rsync is much faster, because it skips files that have not changed and sends only the changed parts of files that have.

  • Is scp deprecated?

    The old scp protocol is. Since OpenSSH 9.0 the scp command uses the SFTP protocol underneath by default, so it keeps working and is safe to use for quick copies. Add -O only if a very old server needs the legacy protocol.

  • Does rclone transfer only the changed parts of a file?

    No. rclone decides which files changed (by size and time, or by checksum) and copies those files whole. For large files that change a little at a time, such as disk images or databases, rsync over SSH moves far less data.

  • What is the difference between rclone copy and rclone sync?

    copy adds and updates files at the destination and never deletes anything. sync makes the destination identical to the source, deleting files that are no longer in the source. Run sync with --dry-run first.

Storage boxes accept scp, rsync, SFTP and Borg on port 23, so every tool in this guide works with them as-is.

See storage boxes

Keep Reading

All guides
rsync vs scp vs rclone | Virteche Cloud