This message means rsync is not in the $PATH of the remote user on the remote system.
$ rsync -av –progress Solaris_8_2004-02/ [email protected]:/export/install/OS
sh: rsync: not found
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(454) [sender=2.6.9]
On the remote system:
# echo $SHELL
/sbin/sh
# ls -l /usr/local/bin/rsync
-rwxr-xr-x 1 bin bin 512108 Dec 1 2006 /usr/local/bin/rsync
# which rsync
no rsync in /usr/bin /usr/sbin /usr/ccs/bin /usr/sbin /usr/bin
In this case, rsync is not in the root user’s $PATH.
You may specify a path to the remote system’s rsync using–rsync-path.
Example:
$ rsync -av –progress –rsync-path=/usr/local/bin/rsync Solaris_8_2004-02/ [email protected]:/export/install/OS
source: http://www.brandonhutchinson.com/sh_rsync_not_found.html