rsync – Remote Data Synchronization Tool

Rsync, short for “remote synchronization,” is a command-line tool for synchronizing files and directories between two different systems. It uses a delta-transfer algorithm, which means that only the differences between the source and target files are transferred, rather than transferring the entire file. Rsync is commonly used for backup and mirroring purposes, as well as for transferring large files over a network.


The basic syntax of the rsync command is as follows:

rsync [options] source destination

Here, “source” refers to the file or directory that you want to copy, and “destination” refers to the location where you want to copy it to. By default, rsync will copy the source file or directory recursively, meaning that it will copy all subdirectories and their contents as well.


Here are some examples of how to use the rsync command:

  • Copy a file from one directory to another:
rsync /path/to/source/file /path/to/destination/
  • Copy a directory and all its contents to another location:
rsync -r /path/to/source/directory/ /path/to/destination/directory/
  • Copy a file from one remote system to another:
rsync user@source:/path/to/source/file user@destination:/path/to/destination/
  • Copy a directory and all its contents from one remote system to another:
rsync -r user@source:/path/to/source/directory/ user@destination:/path/to/destination/directory/

Specific Use Cases

Some specific use cases for rsync include:

  • Backup: You can use rsync to create backups of important files and directories on your system. By using the –delete option, you can ensure that any files that have been deleted from the source are also deleted from the destination.
  • Mirroring: You can use rsync to mirror the contents of a directory on one system to another system. This is useful for ensuring that two systems have identical copies of important files and directories.
  • Large file transfer: Rsync’s delta-transfer algorithm makes it an efficient tool for transferring large files over a network. By only transferring the differences between the source and target files, rsync can save a significant amount of time and bandwidth.


Here are some common options that can be used with the rsync command:

Option Description
-a Archive mode, which preserves permissions, ownership, and timestamps
-r Recursive mode, which copies directories and their contents
-v Verbose mode, which displays detailed information about the transfer
-z Compresses the data during transfer to save bandwidth
–delete Deletes files from the destination that have been deleted from the source
–exclude Excludes files or directories from the transfer based on a pattern

For a full list of options, you can run man rsync in the terminal.

Troubleshooting tips

Here are some common issues that you may encounter when using the rsync command, along with their solutions:

  • Permission denied: If you get a “permission denied” error when trying to copy a file or directory, make sure that you have the necessary permissions to access the source and destination locations. You may need to use the sudo command to run rsync with elevated privileges.
  • Connection refused: If you are trying to copy files between two remote systems and you get a “connection refused” error, make sure that the SSH server is running on both systems and that they are both configured to allow SSH connections.
  • Slow transfer speeds: If you are experiencing slow transfer speeds, try using the –compress option to compress the data during transfer. You can also try increasing the block size using the –block-size option.


  • Rsync can be used to transfer files between different operating systems, as long as they both support SSH. However, some options may not be available on all systems.
  • Rsync can be used with a GUI front-end, such as Grsync or LuckyBackup, for easier configuration and execution of transfers.