Rsync, it is also known as Remote Sync can be described as an free command-line utility that allows you to transfer directories and files to remote and local locations. The tool is used to mirror backups, performing backups, or moving data to different servers.
It is a great tool/command for synchronizing files and directories. (Remote Sync) is an extremely versatile tool that can be used to copy and synchronize directories and files in remote or local environments. Learning this command will assist you to efficiently transfer information across multiple servers, or create backups to restore. The reason it is so effective is the variety of options that allow control over the behavior of the command, which allows you to adjust to your specific requirements.
It also employs an algorithm known as the “delta-transfer algorithm” that reduces the amount of bandwidth that is transferred through the network by passing the difference between source and destination files. We will cover only a handful of instances in this post, which will hopefully help you understand the basics of this command-line software and help you achieve your objectives.
The most fundamental syntax of the command is
rsync <option> <source> <destination>
Copy files/directories in a local environment
With rsync, you are able to quickly make backups of your website by copying the website’s files from its root directory into a folder specifically designated to store backups. If you are using a cPanel-based server, the domain name’s primary files are stored in the “public_html” directory inside the home directory for the individual user. Backups are saved within the “/backup” global directory.
Here is the rsync command you can use
rsync -aHvz /home/username/public_html/ /backup/website-backup
- a – use this option in the command is going to enable “archive mode”. The archive mode preserves all file ownerships, permissions, and modification times of files and folders.
- H – use of this option is going to preserve hard links.
- v – use of this is going to provide more information while the sync is ongoing.
- z – use this option is going to compress the transferred data, reducing the amount of bandwidth transmitted.
Copy files/directories in a remote environment
Let’s try the previous example However, let’s make use of an external server we can transfer the backup
rsync -aHvz /home/username/public_html/ [email protected]:/backups/website-backup
In default rsync will make use of the OpenSSH process to share files since it’s the most secure method. There are occasions when service providers modify their SSH ports due to security concerns. If this happens, rsync provides an option to determine that port as the one to be changed.
Here’s how the command will appear like
rsync -e "ssh -p " -aHvz /home/username/public_html/ [email protected]:/backup/website-backup
The “-e” flag allows you to set the SSH service’s customized port. This command is able to work in the reverse direction, permitting you to transfer documents from the server and transfer them to locally hosted servers. It is possible to pull files from the remote server “pull” process is also often referred to as an “reverse rsync”, and it is a way to restore an earlier version of your site. This is what it looks like:
rsync -aHvz [email protected]:/backup/website-backup/ /home/username/public_html/
An additional utility of the rsync command
Do you realize that rsync can be used to erase files, too? It’s one of the fastest, if not the most efficient methods to accomplish this, particularly when you have lots of files that require an enormous amount storage space on your disk. In order to use this method it is necessary to create a blank directory. It doesn’t matter what the name is in this scenario. The crucial thing is that it remains empty. Finally, you need to use the following command:
rsync -a --delete name-of-empty-folder/ name-of-folder-you-want-to-delete/
What rsync will be doing is creating a synchronization between the empty directory and the complete one, basically not syncing anything with anything that will remove all files in the directory that are populated. Be very careful while doing this, because the process is irreversible and absent a backup, you’re unlikely to retrieve your information.