linuxsshrsynchp-ux

rsync command is not working when executing from remote ssh


rsync command is not working when executing it from a remote host. Jenkins node tries to execute few commands on a remote server, but when running the rsync command I am getting below error sh: rsync: not found.

The rsync command works successfully when I run directly on that server, but when I run it through ssh, it is giving the above error

This is the command that is failing

ssh root@"$build_server" "rsync -avzh $SRC_DIR/main $BUILD_DIR || exit 1"

I tried by giving the path of rsync but still the same error

ssh root@"$build_server" "rsync -avzh --rsync-path=/usr/local/bin/rsync $SRC_DIR/main $BUILD_DIR || exit 1"

Solution

  • Check the remote server's PATH environment variable: Jenkins executes commands in a shell environment, and the error indicates that the shell cannot find the rsync executable. Ensure that the PATH environment variable is properly set on the remote server.

    echo $PATH
    

    So either you modify your environment or you specify the full path to the rsync executable: If rsync is installed in a non-standard location or the PATH is not set correctly, you can specify the full path to the rsync executable in your Jenkins job or script.

    /usr/bin/rsync [options] source destination