web-dev-qa-db-ja.com

rsyncエラーコードの包括的なリスト

ユーザーのホームディレクトリのスナップショットを毎日作成するスクリプトを書いています。まず、次を使用してドライランを実行します。

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

次に、実際のrsync操作(-nオプション)。

ドライランの出力を解析しようとしています。具体的には、rsyncエラーの正確な原因(発生した場合)を調べることに興味があります。誰もが知っていますか

  1. 最も一般的なrsyncエラーとそのコードは?
  2. 包括的なrsyncエラーコードページへのリンクですか?

最も重要なことは、rsync(少なくともCentOs 5では)がエラーコードを返さないことです。むしろ、エラーを内部的に表示し、0を返します。したがって、次のようになります。

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]

誰もがrsyncエラーを解析しなければならず、rsync戻り状態を保存する方法について提案がありますか?複数のファイルを転送する場合、エラーはファイルごとに発生し、上記のコードの最後の行に示されているように最後に収集されると考えています。

19
seebiscuit

Rsyncの「man」ページごとに、返される可能性のあるエラーコードとその意味を以下に示します。 bashでスクリプトを作成している場合は、$?

 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

包括的な「最も一般的なエラー」リストを見たことはありませんが、エラーコード1が一番上にあると確信しています。

39
iandouglas