Are you trying to use rsync to transfer only new files?
This guide is for you.
Rsync, which stands for “remote sync”, is a remote and local file synchronization tool. It uses an algorithm that minimizes the amount of data copied by only moving the portions of files that have changed.
Here at Ibmi Media, as part of our Server Management Services, we regularly help our Customers to perform rsync related tasks.
In this context, you shall learn how to transfer files using rsync.
Rsync (Remote Sync) tool helps in transferring and synchronize files locally and remotely. It is a great tool popularly used for backup operations and mirroring.
It is highly flexible that it allows users to specify any number of files to copy.
Also, it permits copying of links, devices, file or directory owners, groups, and permissions. It also supports users without root privileges.
The general syntax of rsync is as below:
# rsync options source destination
Now you will see how we can transfer the files using rsync.
Here is the command to copy files from the Documents directory to /tmp/documents directory locally.
$ rsync -av Documents/* /tmp/documents
In the above command;
-a – means archive mode
-v – means verbose, showing details of ongoing operations
By default, rsync will only copy new or changed files from a source to a destination.
The –update or -u option is used by rsync to skip files that are still new in the destination directory.
Also, –dry-run or -n enables us to execute a test operation without making any changes. It shows us what files we need to copy.
$ rsync -aunv Documents/* /tmp/documents
After executing a test run, we can then do away with the -n and perform a real operation:
$ rsync -auv Documents/* /tmp/documents
Here is the command to copy files from local machine to a remote server with the IP address 1x.xx.1.x. Also, this command will only sync new files on the local machine, that do not exist on the remote machine, we can include the –ignore-existing option.
$ rsync -av –ignore-existing Documents/* user@1x.xx.1.x:~/all/
Moreover, to sync only updated or modified files on the remote machine that have changed on the local machine, we can perform a dry run before copying files as below.
$ rsync -av –dry-run –update Documents/* user@1x.xx.1.x:~/all/
$ rsync -av –update Documents/* user@1x.xx.1.x:~/all/
Here, the –update will force rsync to skip any files that exist on the destination file and have a modified time that is newer than the source file. If an existing destination file has a modification time equal to the source file, it will be updated if the sizes are different.
Also, to update the existing files and prevent the creation of new files in the destination, we utilize the –existing option.
This article will guide you on the steps to #transfer only the new files using rsync locally and from Local to #Remote #Linux.
Syncing to a remote system is trivial if you have SSH access to the remote #machine and #rsync installed on both sides. Once you have #SSH access verified between the two machines, you can #sync a folder to a remote #computer by using the rsync syntax.