Rsync exit codes
Contents
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 none@nonexisting.example.com: ssh: Could not resolve hostname nonexisting.example.com: 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 $? 255
This would be essentially the same failure as SSH connecting:
$ ssh none@nonexisting.example.com ssh: Could not resolve hostname nonexisting.example.com: Name or service not known $ echo $? 255
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% ) :donechecking
- 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.