Rsync exit codes

From lxadm | Linux administration tips, tutorials, HOWTOs and articles
Jump to: navigation, search

List of standard rsync exit codes

This is a list of rsync exit codes (rsync status codes / rsync error codes / rsync exit values).

       0      Success
       1      Syntax or usage error
       2      Protocol incompatibility
       3      Errors selecting input/output files, dirs
       4      Requested  action not supported: an attempt was made to manipulate 64-bit files on a platform 
              that cannot support them; or an option was specified that is supported by the client and not by the server.
       5      Error starting client-server protocol
       6      Daemon unable to append to log-file
       10     Error in socket I/O
       11     Error in file I/O
       12     Error in rsync protocol data stream
       13     Errors with program diagnostics
       14     Error in IPC code
       20     Received SIGUSR1 or SIGINT
       21     Some error returned by waitpid()
       22     Error allocating core memory buffers
       23     Partial transfer due to error
       24     Partial transfer due to vanished source files
       25     The --max-delete limit stopped deletions
       30     Timeout in data send/receive
       35     Timeout waiting for daemon connection

Exit code 127

If you're seeing exit code 127 after running rsync (i.e. in a script), it can mean you don't even have rsync binary installed on your system.

Exit code 255

If you're seeing exit code 255 after running rsync, it can mean rsync just passed exit code from a command it used to connect - typically SSH.

$ rsync -a /etc/service
ssh: Could not resolve hostname Name or service not known
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(226) [sender=3.1.1]

$ echo $?

This would be essentially the same failure as SSH connecting:

$ ssh
ssh: Could not resolve hostname Name or service not known

$ echo $?

Exit code on Linux / UNIX

To check rsync exit code on Linux / UNIX (or in fact, any other command), run this one just after rsync command:

echo $?

Exit code on Windows

  • to check rsync exit code on Windows, run this one just after rsync command:
echo Exit Code is %errorlevel%
  • NB: The IF ERRORLEVEL n test succeeds if the error level is n or more. So - to capture just exit code 1:
if errorlevel 2 (
   REM rsync exit code is 2 or greater - Some other error
   goto donechecking
if errorlevel 1 (
   echo rsync exit code is %errorlevel% - Syntax or usage error
   exit /b %errorlevel%

  • in PowerShell, you can also use:
echo Exit Code is $LastExitCode

Error code 11 on Windows

Error code 11 can be confusing when rsync is started as a service on a Windows platform. It can mean that the pid file for rsync already exists in the C:\Program Files\cwRsyncServer folder (or ony other directory where rsync is installed) - although no other info will be given in Windows Event Log. It will become more apparent only if rsync is started as a service from the command line.