10 Implementations of Rsync Command in Linux

10 Implementations of Rsync Command in Linux

8 mins read265 Views Comment
Updated on Aug 26, 2024 17:38 IST

Learn how to use the rsync command in 10 practical ways with our comprehensive guide. From backing up files to copying entire drives, we’ve got you covered.

2023_04_Copy-of-Copy-of-Feature-Image-Templates-30.jpg

If you’re a developer or a student working with Linux, chances are you’ve heard of the Remote Sync (Rsync) command. Rsync is a powerful tool that copies and synchronises files between local and remote systems. But did you know there are multiple ways to use this versatile command?

In this blog post, we’ll explore ten different implementations of the Rsync command in Linux. We’ll cover everything from the basic syntax to more advanced options, such as using SSH for secure remote transfers and syncing directories with specific permissions. By the end of this post, you’ll have a comprehensive understanding of how to use Rsync to its fullest potential. So, let’s dive in and discover how you can leverage this amazing tool!

Explore popular Linux Courses

Table of Contents

Introduction to the Rsync Command and its Features

Rsync is a fast and efficient file-copying utility that syncs files between two locations on the same system or across different networks. Its most notable feature is its ability to perform incremental backups, meaning it only transfers changes in files instead of copying entire files every time.

Some other features of Rsync include compression, encryption, and support for transferring symbolic links, hard links, and devices. It’s also highly customizable, with over 100 options, making it a powerful tool for developers and system administrators.

How to Unzip a File in Linux – A Step-by-Step Guide
How to Unzip a File in Linux – A Step-by-Step Guide
Unzipping files in Linux is crucial for handling compressed data efficiently. It enables easy access to a variety of archived files, simplifying storage and sharing. Whether extracting specific files to...read more
How to Schedule Tasks on Linux Using Crontab?
How to Schedule Tasks on Linux Using Crontab?
Crontab on Linux allows users to automate their recursive tasks. Here is how to schedule tasks on Linux using crontab.Crontab on Linux allows users to automate their recursive tasks. Here...read more
Using the SED Command in Linux
Using the SED Command in Linux
Discover the versatility of the sed command in Linux for text manipulation in files and streams. Our guide covers basic and advanced features to enhance your productivity. This comprehensive guide...read more

Benefits of the Rsync Command

  • Rsync employs a remote-update protocol that transports just the differences between two data sets, making it quicker than scp (Secure Copy). When copying a file or directory for the first time, it transfers the entire contents from the source to the recipient; however, after that, it simply copies the altered blocks and bytes.
  • It effectively transfers files to or from a remote machine and syncs them.
  • Copying of hyperlinks, tools, proprietors, categories, and authorizations is supported.
  • Since Rsync employs compression and decompression to send and receive data on both ends, it requires less bandwidth.
Recommended online courses

Best-suited Linux courses for you

Learn Linux with these high-rated online courses

– / –
200 hours
2 K
20 hours
– / –
3 months
– / –
6 months
Free
8 hours
– / –
40 hours
– / –
3 months
10 K
60 hours
– / –
3 months

Basic usage of the rsync command for local file transfers

The most common use case for Rsync is to transfer files between two locations. To do this, you need to specify the source and destination directories or files using the basic syntax 


 
rsync [options] [source] [destination]
Copy code

Example:


 
rsync /home/user/file.txt
username@host:/path/to/destination/
Copy code

It will copy the file.txt from the local machine to a remote machine at the specified destination path.

You can use the Secure Shell (SSH) protocol with Rsync to increase security during remote transfers. Add the “-e” option followed by “ssh” to your basic syntax command to do this.

Example:


 
rsync -e ssh /home/user/file.txt
username@host:/path/to/destination/
Copy code

This syntax will transfer the file securely over SSH.

Using the rsync command for remote file transfers

Rsync can also transfer files between two remote locations, making it a valuable tool for managing distributed systems. To do this, you will need to specify the source and destination using the syntax 


 
rsync [options] [user@]host: source destination
Copy code

Example:


 
rsync -avz user1@remote1:/home/user/files/user2@remote2:/backup/
Copy code

This syntax will sync the files from remote1 to remote2.

As with local transfers, you can use the “-e” option followed by “ssh” to increase security during remote transfers. 

Example: 


 
rsync -avze ssh user1@remote1:/home/user/files/user2@remote2:/backup/
Copy code

This argument will transfer the files securely over SSH.

In addition to transferring files, Rsync can be used for backups by syncing directories between two locations. This allows you to back up important data to a remote location for safekeeping. With Rsync’s customizable options, creating automated backup scripts that run regularly is easy.

Copying files with specific permissions and ownerships using the -a flag

When using the rsync command, the -a flag can preserve the permissions and ownerships of the files being copied. It is particularly useful when transferring files between systems with different users and groups.

To use the -a flag, include it in your syntax command: 


 
rsync -a /path/to/source user@host:/path/to/destination
Copy code

This will copy the files from the source directory while preserving their permissions and ownership during transfer.

Utilizing this feature ensures your transferred files remain secure and maintain their intended access controls.

Synchronizing directories with the –delete flag

When syncing directories with the rsync command, it’s important to ensure that any files or directories removed from the source are also removed from the destination. This is where the –delete flag comes in handy.

By including –delete in your syntax command: 


 
rsync -avz --delete /path/to/source user@host:/path/to/destination
Copy code

Any files or directories that no longer exist in the source it will delete from the destination during transfer. This ensures that your destination folder is always replicating your source folder.

However, using this option cautiously is important, as it can potentially delete important files if used incorrectly. Double-check the source directory before running the command with –delete to avoid accidental deletions.

Transferring only new or updated files with the –update flag

When syncing directories with rsync, you may only want to transfer new or updated files since the last transfer. In this case, the –update flag can be used.

By including –update in your syntax command: 


 
rsync -avzu /path/to/source user@host:/path/to/destination
Copy code

Rsync will skip copying any files that exist in the destination and have not been modified or updated in the source. This ensures you only transfer the necessary files, saving time and bandwidth.

Additionally, the -z flag compresses data during transfer, reducing the amount of data being transferred and speeding up the process even more. However, compressing already compressed files (such as JPEGs or MP3s) may result in insignificant reductions. Therefore, use this option wisely.

Using rsync over SSH for secure file transfers

If you need to transfer files securely over a network, we can use rsync over SSH. This enables the data being transferred is encrypted and protected from unauthorized access.

To use rsync over SSH, include the SSH username and hostname in your syntax command: 


 
rsync -avz /path/to/local/folder/
user@remotehost:/path/to/remote/folder
Copy code

The command will prompt you for the SSH password to authenticate and initiate the transfer securely.

[Note: Make sure that SSH is enabled on both the source and destination computers and that you have appropriate permissions to access both devices.]

Implementing bandwidth limit using the –bwlimit flag

When you need to limit the bandwidth it uses during a rsync transfer, the –bwlimit flag can be used. This is particularly useful when transferring large files or folders over a network with limited bandwidth.

To set a bandwidth limit, include the flag in your syntax command followed by the desired limit in kilobytes per second: 


 
rsync -avz --bwlimit=100 /path/to/source
user@host:/path/to/destination
Copy code

Here, the maximum bandwidth allows for the transfer is set to 100KB/s. Adjust this value according to your network’s capacity and available bandwidth to ensure a smooth transfer without affecting other network activities. Limiting the bandwidth may increase the overall time required for the transfer, so use this option only when necessary.

Creating a backup solution using the rsync command

One of the most popular uses of rsync is for creating reliable backup solutions. With its ability to transfer only modified files and folders, rsync simplifies the task of creating incremental backups over a network.

To create a backup using rsync, include the source and destination paths in your syntax command: 


 
rsync -avz /path/to/source user@host:/path/to/backup
Copy code

This command will create a mirror copy of the source folder in the destination location. Subsequent runs of the command will only transfer modified files or folders, making it an efficient way to maintain backups in real time. To further enhance the backup solution, you can add options like –delete to remove files and folders from the destination location that no longer exists in the source location, or –exclude to exclude specified files or folders from the backup process. With these options, you can create a customized and comprehensive backup solution using rsync.

Automating file transfers with crontab and rsync

Another useful feature of rsync is its ability to automate file transfers using crontab. Configuring a cron job allows you to schedule regular backups or file transfers, ensuring your data is always up-to-date and secure.

Create a new cron job with the “crontab -e” command to set up an automated file transfer. Then, add the following syntax to the file: 


 
0 0 * * * rsync -avz /path/to/source user@host:/path/to/backup
Copy code

This will execute the rsync command at midnight daily, transferring any modified files from the source to the backup location. You can customize this syntax to suit your specific needs, such as changing the backup frequency or including additional options like –delete or –exclude.

By automating file transfers with crontab and rsync, you can save time and ensure your data is always backed up and secure. Whether for personal or business use, implementing a reliable backup solution is essential in today’s digital age, and rsync provides a powerful tool for achieving that goal.

Wrapping Up!

In conclusion, rsync is a versatile and efficient tool for backing up and transferring files. Its real-time syncing capabilities and customizable options make it an ideal backup solution for personal and business use. With the added feature of automating file transfers using crontab, you can ensure that your data is always up-to-date and secure without spending too much time on manual backups. So, whether you’re a writer, a business owner, or someone who values their digital data, rsync is your go-to backup solution.

Contributed By: Furkan

About the Author

This is a collection of insightful articles from domain experts in the fields of Cloud Computing, DevOps, AWS, Data Science, Machine Learning, AI, and Natural Language Processing. The range of topics caters to upski... Read Full Bio