Rsync (Remote Sync) is a fast and versatile command-line tool for synchronizing files and folders between two locations via a remote shell, or to a remote rsync daemon. Rsync allows incremental file transfers by only transferring the differences between source and destination locations.
Rsync can be used to mirror data, additional backups, and file copies between systems instead of commands scp
, sftp
And and cp
For daily use.
In this tutorial, we’ll show you how to use rsync with practical examples and step-by-step explanations of the most popular rsync options.
Install Rsync
The rsync utility comes pre-installed on most Linux distributions and on Mac OSX. You can check if Rsync is installed on your system by typing:
rsync --version
rsync version 3.1.2 protocol version 31
If you do not have rsync installed on your system, you can easily install it using your distribution package manager.
Install Rsync on Ubuntu and Debian
sudo apt install rsync
Install Rsync on CentOS and Fedora
sudo yum install rsync
Rsync command syntax
Before discussing how to use the rsync command, let’s start by reviewing the basic syntax.
The rsync utility expression takes the following form:
Lokal ke Lokal: rsync [OPTION]... SRC [SRC]... DEST Lokal ke Remote: rsync [OPTION]... SRC [SRC]... [[email protected]]HOST:DEST Remote ke Lokal: rsync [OPTION]... [[email protected]]HOST:SRC [DEST]
OPTION
– rsync optionsSRC
– Source directoryDEST
– Destination directlyUSER
– Remote usernameHOST
– remote host
Rsync provides a number of options that control every aspect of its behavior. The most used options are:
-a
,--archive
, Equal-rlptgoD
. The commonly used options will sync directories frequently, move specific devices, preserve symbolic links, edit times, groups, ownership, and permissions.-z
,--compress
This option will force rsync to compress data as it is sent to the destination device. Use this option only if the connection to the remote device is slow.-P
,--partial --progress
– This option will tell rsync to show the progress bar while transferring and save part of the transferred file. This command is useful when transferring large files over slow or unstable network connections.--delete
When using this option, rsync will delete foreign files from the destination site. This command is useful for reflection.-q
,--quiet
Use this option if you only want to suppress the output message and an error message.-e
. This option allows you to select a different remote jacket. By default, Rsync is configured to use ssh.
Primary use for Rsync
To copy a file from one local location to another, you must run the following command:
rsync -a /opt/namafile.zip /tmp/
Removes the file name from the destination location, then the file name is the same as the name when moving. If you want to save the file with a different name, then you need to specify a new name:
rsync -a /opt/namafile.zip /tmp/namabaru.zip
In the example below we are making a local backup of website files:
rsync -a /var/www/domain.com/public_html/ /var/www/domain.com/public_html_backup/
If the destination directory does not exist then rsync will create it.
It is worth noting that rsync provides different treatment of source evidence with a slash /
. If you add a slash to the source directory, only the directory contents are copied to the destination directory.
When removing the slash, rsync will copy the source directory to the destination directory.
How to use Rsync for remote transfers
When rsync is used for remote transfers, it must also be installed on the source and destination devices. Newer versions of rsync are configured to use SSH as the default remote shell.
In the following example, we’re moving a directory from a local to a remote machine:
rsync -a /opt/media/ [email protected]_host_or_ip:/opt/media/
If you have not set an SSH login without password for the remote machine, you will be prompted for the password.
If you want to transfer data from a remote machine to a local machine, then you need to use the remote site as the source:
rsync -a [email protected]_host_atau_ip:/opt/media/ /opt/media/
If the SSH on the remote host is listening on a port other than the default 22, then you can specify the port using the argument -e
:
rsync -a -e "ssh -p 2322" /opt/media/ [email protected]_host_or_ip:/opt/media/
When you are transferring large amounts of data, it is recommended that you run the rsync command in-screen or tmux session or use the options to make it easier -P
.
Exclude files and directories
When excluding files or directories, you need to use their relative paths. There are two options to exclude files and directories when using rsync.
The first option is to use arguments --exclude
And specify the files and directories you want to exclude in the command line.
In the next example we will exclude evidence node_modules
And and tmp
It is located inside the directory src
rsync -a --exclude=node_modules --exclude=tmp /src/ /dst_directory/
The second option is to use arguments --exclude-from
Select the files and directories you want to exclude in a file.
rsync -a --exclude-from='/daftar-exclude.txt' /src/ /dst_directory/
Let’s look at the list -lusione.txt file with the cat command:
cat exclude-file.txt
node_modules tmp
Conclusion
In this tutorial, you learned how to use Rsync to copy and synchronize files and directories. There is a lot to learn about Rsync on the Rsync User’s Guide page.
Originally posted 2020-11-19 15:33:28.