In my rsyncd.conf I have a pre-xfer exec defined: [backup] comment = full backup pre-xfer exec = sh /etc/ntc/invoke_trigger backup all max connections = 1 path = /var/lib/systemimager/backup read only = true use chroot = true list = true dont compress = *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz the invoke_trigger script will trigger machines by using an ssh connection: ssh -qi privatekey -o StrictHostKeyChecking=no -l sshuser server1 backup > backup.sql ssh -qi privatekey -o StrictHostKeyChecking=no -l sshuser server2 backup the backup command is a script that will be executed on the corresponding machine. When the backup script generates output to stdout, it won't be catched by the ssh in the invoke_trigger script. Also, the ssh connection to server1 and server2 won't be closed, so that the invoke_trigger script waits forever on the first command. When i manually execute the invoke_trigger script, it all works perfect. I guess rsync prevents output redirection on forks or something.. Is there a way to start the rsync daemon so that this works? Has it anything to do in the way the rsync daemon starts? (I start it on bash: rsync --daemon --config=/etc/rsyncd.conf)
fixed it myself, not an rsync issue :-) the cause was ssh, which has no output redirection from forks coming from a non-shell (for instance rsync). adding the -n parameter to ssh solves this issue.