0% found this document useful (0 votes)
3 views

Rsync Command in Linux with Examples _ Linuxize (2)

The document provides a comprehensive guide on using the rsync command in Linux for file and directory synchronization, detailing its syntax, common options, and practical examples. Rsync is highlighted for its efficiency in transferring only the differences between source and destination, making it suitable for backups and data mirroring. The article also covers installation instructions and methods for excluding specific files or directories during synchronization.

Uploaded by

nasarthemax
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

Rsync Command in Linux with Examples _ Linuxize (2)

The document provides a comprehensive guide on using the rsync command in Linux for file and directory synchronization, detailing its syntax, common options, and practical examples. Rsync is highlighted for its efficiency in transferring only the differences between source and destination, making it suitable for backups and data mirroring. The article also covers installation instructions and methods for excluding specific files or directories during synchronization.

Uploaded by

nasarthemax
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 8

11/9/24, 12:54 PM Rsync Command in Linux with Examples | Linuxize

Rsync Command in Linux with Examples


Updated on Jul 20, 2020 • 5 min read

rsync is a fast and versatile command-line utility for synchronizing files and
directories between two locations over a remote shell, or from/to a remote Rsync
daemon. It provides fast incremental file transfer by transferring only the differences
between the source and the destination.

Rsync can be used for mirroring data, incremental backups, copying files between
systems, and as a replacement for scp , sftp , and cp commands.

This article explains how to use rsync through practical examples and detailed
explanations of the most common rsync options.

Installing Rsync
The rsync utility is pre-installed on most Linux distributions and macOS. If you
don’t have rsync installed on your system, you can easily install it using your
distribution’s package manager.

https://linuxize.com/post/how-to-use-rsync-for-local-and-remote-data-transfer-and-synchronization/ 1/8
11/9/24, 12:54 PM Rsync Command in Linux with Examples | Linuxize

Install Rsync on Ubuntu and Debian

$ sudo apt install rsync

Install Rsync on CentOS and Fedora

$ sudo yum install rsync

Rsync Command Syntax


Before going into how to use the rsync command, let’s start by reviewing the basic
syntax.

The rsync utility expressions take the following form:

Local to Local: rsync [OPTION]... [SRC]... DEST


Local to Remote: rsync [OPTION]... [SRC]... [USER@]HOST:DEST
Remote to Local: rsync [OPTION]... [USER@]HOST:SRC... [DEST]

OPTION - The rsync options .

SRC - Source directory.

DEST - Destination directory.

USER - Remote username.

HOST - Remote hostname or IP Address.

rsync provides a number of options that control how the command behaves. The
most widely used options are:

-a , --archive , archive mode, equivalent to -rlptgoD . This option tells rsync to


syncs directories recursively, transfer special and block devices, preserve symbolic
links, modification times, groups, ownership, and permissions.
-z , --compress . This option forces rsync to compresses the data as it is sent to
the destination machine. Use this option only if the connection to the remote
machine is slow.

https://linuxize.com/post/how-to-use-rsync-for-local-and-remote-data-transfer-and-synchronization/ 2/8
11/9/24, 12:54 PM Rsync Command in Linux with Examples | Linuxize

-P , equivalent to --partial --progress . When this option is used, rsync


shows a progress bar during the transfer and keeps the partially transferred files.
It is useful when transferring large files over slow or unstable network
connections.

--delete . When this option is used, rsync deletes extraneous files from the
destination location. It is useful for mirroring.

-q , --quiet . Use this option if you want to suppress non-error messages.

-e . This option allows you to choose a different remote shell. By default, rsync
is configured to use ssh.

Basic Rsync Usage


The most basic use case of rsync is to copy a single file from one to another local
location. Here is an example:

$ rsync -a /opt/filename.zip /tmp/

The user running the command must have read permissions on the source location
and write permissions on the destination.

Omitting the filename from the destination location copies the file with the current
name. If you want to save the file under a different name, specify the new name on
the destination part:

$ rsync -a /opt/filename.zip /tmp/newfilename.zip

The real power of rsync comes when synchronizing directories. The example below
shows how to create a local backup of website files:

https://linuxize.com/post/how-to-use-rsync-for-local-and-remote-data-transfer-and-synchronization/ 3/8
11/9/24, 12:54 PM Rsync Command in Linux with Examples | Linuxize

$ rsync -a /var/www/domain.com/public_html/ /var/www/domain.com/public_html

If the destination directory doesn’t exist, rsync will create it.

It is worth mentioning that rsync gives different treatment to the source directories
with a trailing slash ( / ). If the source directory has a trailing slash, the command will
copy only the directory contents to the destination directory. When the trailing slash
is omitted, rsync copies the source directory inside the destination directory.

Using rsync to Sync Data from/to a remote Machine


When using rsync to transfer data remotely , it must be installed on both the
source and the destination machine. The new versions of rsync are configured to
use SSH as default remote shell.

In the following example, we are transferring a directory from a local to a remote


machine:

$ rsync -a /opt/media/ remote_user@remote_host_or_ip:/opt/media/

If you haven’t set a passwordless SSH login to the remote machine, you will
be asked to enter the user password.

To transfer data from a remote to a local machine, use the remote location as a
source:

$ rsync -a remote_user@remote_host_or_ip:/opt/media/ /opt/media/

If SSH on the remote host is listening on a port other than the default 22 , specify
the port using the -e option:

https://linuxize.com/post/how-to-use-rsync-for-local-and-remote-data-transfer-and-synchronization/ 4/8
11/9/24, 12:54 PM Rsync Command in Linux with Examples | Linuxize

$ rsync -a -e "ssh -p 2322" /opt/media/ remote_user@remote_host_or_ip:/opt/

When transferring large amounts of data it is recommended to run the rsync


command inside a screen session or to use the -P option:

$ rsync -a -P remote_user@remote_host_or_ip:/opt/media/ /opt/media/

Exclude Files and Directories


There are two options to exclude files and directories. The first option is to use the -
-exclude argument and specify the files and directories you want to exclude on the
command line.

When excluding files or directories , you need to use their relative paths to the
source location.

In the following example shows how exclude the node_modules and tmp directories:

$ rsync -a --exclude=node_modules --exclude=tmp /src_directory/ /dst_direct

The second option is to use the --exclude-from option and specify the files and
directories you want to exclude in a file.

$ rsync -a --exclude-from='/exclude-file.txt' /src_directory/ /dst_director

/exclude-file.txt

node_modules
tmp

Conclusion
https://linuxize.com/post/how-to-use-rsync-for-local-and-remote-data-transfer-and-synchronization/ 5/8
11/9/24, 12:54 PM Rsync Command in Linux with Examples | Linuxize

We have shown you how to use Rsync to copy and synchronize files and directories.
There’s lots more to learn about Rsync at Rsync User’s Manual page.

Feel free to leave a comment if you have any questions.

rsync terminal

If you like our content, please consider buying us a coffee.


Thank you for your support!

BUY ME A COFFEE

Sign up to our newsletter and get our latest tutorials and news
straight to your mailbox.

Your email... Subscribe

We’ll never share your email address or spam you.

Related Articles
AUG 19, 2019
How to Transfer Files with Rsync over SSH

https://linuxize.com/post/how-to-use-rsync-for-local-and-remote-data-transfer-and-synchronization/ 6/8
11/9/24, 12:54 PM Rsync Command in Linux with Examples | Linuxize

NOV 14, 2020


How to Copy Files and Directories in Linux

FEB 20, 2019

How to Exclude Files and Directories with Rsync

https://linuxize.com/post/how-to-use-rsync-for-local-and-remote-data-transfer-and-synchronization/ 7/8
11/9/24, 12:54 PM Rsync Command in Linux with Examples | Linuxize

Show comments (4)

© 2024 Linuxize.com | A Raptive Partner Site


Privacy Policy Terms Contact

https://linuxize.com/post/how-to-use-rsync-for-local-and-remote-data-transfer-and-synchronization/ 8/8

You might also like