web-dev-qa-db-fra.com

Liste complète des codes d'erreur rsync

J'écris un script qui fait des instantanés quotidiens des répertoires personnels des utilisateurs. Je fais d'abord un essai à sec en utilisant:

rsync -azvrn --out-format="%M %f" source/dir dest/dir

puis l'opération rsync réelle (en supprimant le -n option).

J'essaie d'analyser la sortie de l'essai à sec. Plus précisément, je suis intéressé à apprendre la cause exacte de l'erreur rsync (si elle s'est produite). Quelqu'un sait-il

  1. Les erreurs rsync les plus courantes et leurs codes?
  2. Un lien vers une page de codes d'erreur rsync complète?

Plus important encore, rsync (au moins sur CentOs 5) ne renvoie pas de code d'erreur. Il affiche plutôt les erreurs en interne et retourne avec 0. Comme ceci:

sending incremental file list
rsync: link_stat "/data/users/gary/testdi" failed: No such file or directory (2)

sent 18 bytes  received 12 bytes  60.00 bytes/sec
total size is 0  speedup is 0.00 (DRY RUN)

rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1039) [sender=3.0.6]

Quelqu'un a-t-il dû analyser les erreurs rsync et avoir une suggestion sur la façon de stocker les états de retour rsync? Je crois, lors du transfert de plusieurs fichiers, que des erreurs peuvent être déclenchées par fichier et sont collectées à la fin, comme indiqué sur la dernière ligne de code ci-dessus.

19
seebiscuit

Selon la page "man" de rsync, voici les codes d'erreur qu'il pourrait renvoyer et ce qu'ils signifient. Si vous l'écrivez en bash, vous pouvez regarder $?

 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

Je n'ai jamais vu une liste complète des "erreurs les plus courantes" mais je parie que le code d'erreur 1 serait en haut.

39
iandouglas