gtkrsync - GUI front-end for rsync
gtkrsync [ args for rsync ... ]
gtkrsync is a graphical interface for displaying the progress of an
rsync(1) session. It displays a running status display from parsing
the output of rsync --progress -v (with --no-inc-recursive with rsync
v3.0 or above). This status display includes a per-file and overall
status bar, overall estimated time to completion, and an expandable
button that shows all rsync status output.
Unlike other GUI rsync frontends such as grsync, gtkrsync does not have
any GUI tools for configuring or invoking rsync. gtkrsync is designed
to be invoked from the command line or shell scripts, which already
specify all the needed rsync options. It is thus ideal for scripted
rsync runs that need a GUI, or for command-line users that would like a
GUI to monitor their rsync progress.
gtkrsync is a drop-in replacement for rsync. It fires up the GUI and
invokes rsync, passing all args to it. When invoked this way, gtkrsync
is able to detect if rsync exits in error and alerts the user.
gtkrsync can also monitor both stdout and stderr from rsync, and
displays both. The cancel button in gtkrsync also will kill off the
rsync process. You must make sure to pass --progress -v on the
gtkrsync command line in order to get enough information out of rsync
to build a proper GUI.
If ysing rsync version 3.0 or above, you must also add --no-inc-
recursive to your command line. These newer versions of rsync use
incremental tree scanning by default. As a result, they do not emit
information up front about the expected number of files to transfer,
and thus gtkrsync would lack enough information to display its progress
Besides gtkrsync, the other binary is gtkrsyncp. This program accepts
the output of rsync --progress -v on standard input and displays it in
a GUI. It cannot detect whether rsync exited in error and cannot kill
rsync when Cancel is pressed. However, this program may be useful in
some cases when direct control of rsync is handled elsewhere.
All options passed to gtkrsync are sent directly to rsync(1).
gtkrsyncp takes no options.
gtkrsync and gtkrsyncp both return 0 on success or 20 if the user
clicked Cancel or closed the window before the rsync was complete. 20
is also the code that rsync uses to indicate a transfer interrupted by
In all other cases, gtkrsync returns the result code that rsync
returned. gtkrsyncp returns 0.
gtkrsync will look for an RSYNC environment variable. If set, it is
taken to be the name of the rsync binary. If not given, rsync is used.
gtkrsyncp does not use this variable.
This application uses no other environment variables directly, but
other programs or standard libraries may do so. DISPLAY, for instance,
must be set for the X libraries to work.
Users using rsync over ssh may find the SSH_ASKPASS variable useful.
This is interpreted directly by ssh and can specify a GUI tool to use
to prompt the user for a password when needed.
gtkrsync, all associated scripts and programs, this manual, and all
build scripts are Copyright (C) 2007-2010 John Goerzen.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your
option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
gtkrsync, its modules, documentation, executables, and all included
files, except where noted, was written by John Goerzen
<email@example.com> and copyright is held as stated in the
gtkrsync may be downloaded from the Debian packaging system or at
gtkrsync may also be downloaded using git by running git clone
rsync(1), gtkrsync(1), gtkrsyncp(1), ssh(1).