Solution for rsync overall progress data display
linux at thehobsons.co.uk
Sun Nov 26 21:34:25 UTC 2017
> I looking for a solution to display overall rsync progress on an LCD display as a bargraph.
> I have found 2 parameters:
> This option tells rsync to print information showing the
> progress of the transfer. This gives a bored user something to
> watch. Implies --verbose if it wasn't already specified.
> While rsync is transferring a regular file, it updates a
> progress line that looks like this:
> 782448 63% 110.64kB/s 0:00:04
> But they are not showing the overall progress during the transfer what I need.
Bear in mind that until the sync is almost finished, rsync does NOT know how much is left to do. AIUI, one thread is running a compare, working down the directory tree and building a list of files that aren't up to date on the target. Another thread is then taking files from this list and syncing them.
So at any point in time, there is a queue of files to be synced which is NOT complete, and a process that's syncing those files one at a time. Until the first thread is done, there isn't even a list of files, and until the sync is running, there isn't information on how much needs to be transferred for each of those files.
It's well worth reading Andrew Tridgell's PHD thesis where the algorithm is detailed. It's quite readable and gives a good insight into how rsync works.
More information about the rsync