Home

Awesome

rsyncy

A status/progress bar for rsync.

gif of rsyncy -a a/ b

Status Bar

[########################::::::]  80% |      19.17G |      86.65MB/s | 0:03:18 | #306 | scan 46% (2410)\

The status bar shows the following information:

DescriptionSample
Progress bar with percentage of the total transfer[########################::::::] 80%
Bytes transferred19.17G
Transfer speed86.65MB/s
Elapsed time since starting rsync0:03:18
Number of files transferred#306
Files to scan/check<br>- percentage completed<br>- (number of files)<br>- spinnerscan 46% (2410)\

The spinner indicates that rsync is still checking if files need to be updated. Until this process completes the progress bar may decrease as new files are found.

Installation

Usage

rsyncy is a wrapper around rsync.

# simple example
$ rsyncy -a FROM/ TO

Alternatively you can pipe the output from rsync to rsyncy (in which case you need to specify --info=progress2 -hv yourself).

$ rsync -a --info=progress2 -hv FROM/ TO | rsyncy

At the moment rsyncy itself has only one option, you can turn off colors via the NO_COLOR=1 environment variable.

Known Issue when using ssh behind rsync

ssh uses direct TTY access to make sure that the input is indeed issued by an interactive keyboard user (for host keys and passwords). That means that rsyncy does not know that ssh is waiting for input and will draw the status bar over it. You can still enter your password and press enter to continue.

Workaround: connect once to your server via ssh to add it to the known_hosts file.

lf support

rsyncy-stat can be used to view only the status output on lf (or similar terminal file managers).

Example:

cmd paste-rsync %{{
    opt="$@"
    set -- $(cat ~/.local/share/lf/files)
    mode="$1"; shift
    case "$mode" in
        copy) rsyncy-stat -rltphv $opt "$@" . ;;
        move) mv -- "$@" .; lf -remote "send clear" ;;
    esac
}}

This shows the copy progress in the > line while rsync is running.

If you have downloaded the binary version you can create it with ln -s rsyncy rsyncy-stat.

Development

First record an rsync transfer with pipevcr, then replay it to rsyncy when debugging.