In my first introductory rsync post, How To Synchronize Directories with Rsync, I’ve shown you the most basic approach to syncing two directories up. Today, I’d like to show you another useful thing you can do with [rsync][rsync-command.
Just to remind you all,
rsync is a remote synchronisation tool. This means that its primary use lies in the filed of synchronising files and directories between remote Unix systems, but I feel that it’s really important for you to understand the basics before moving on to more advanced stuff.
The beauty of rsync is that its syntax and command line options are exactly the same for local and remote directories synchronisations, so it’s not like you’ll have to learn it all from scratch when I show you the real world usage of rsync in my next post. rsync experiments setup
Just use the following commands to re-create your
rsync playground for this post:
It will probably be more convenient for you to just download the same commands in form of a script though, so here’s the link: rsync-setup.sh
The larger the directories you’re synchronising with rsync, the longer it will take for the command to finish. Depending on the scale of your task, it can be minutes, long hours or even days before you get the synchronisation complete. With this in mind, the importance of progress tracking with rsync should be obvious to you.
Here’s how you make rsync report its progress: just use the –progress command line option (in addition to the command line I introduced you to last time):
The key differences are that you first get a regularly updated message about building a file list. When you run into hundreds of thousands of files, this becomes quite useful:
Another way to track progress is to see the transfer progress for each of the involved files. For thousands tiny files it won’t be all that impressive a feature, but if you’re transferring huge files between remote systems, a dynamic transfer progress for each file will be exactly what you need:
That’s it, hope you like this new option. I promise to tell you more some other time!