rsync: [Sender] メモリ不足: my_alloc 呼び出し元 (file=lib/pool_alloc.c, line=143)

rsync: [Sender] メモリ不足: my_alloc 呼び出し元 (file=lib/pool_alloc.c, line=143)

多数のファイルを含むサブディレクトリを含むディレクトリをrsyncしようとしています。だから私は次のような結果を得たときには全く驚かなかった。

[sender] out of memory: my_alloc caller (file=lib/pool_alloc.c, line=143)

サーバー側のメモリが不足しています。

rsync一時ファイルをファイル名として使用して、メモリに少数のファイル名を保持するように知る方法はありますか?

root@remote-end:~# rsync --version
rsync  version 3.2.3  protocol version 31

答え1

答えではありませんが、不都合な解決策は次のとおりです。

# Copy the dir structure without files
ssh remote 'cd srcdir; find . -type d' | parallel mkdir -p
find . -type d |
  # Sort so the deep dirs come first
  perl -e 'print sort { $b=~s:/:/:g <=> $a=~s:/:/:g; } <>;' |
  parallel rsync -a remote:srcdir/{} {}

結局はまだ失敗しますが、すべてのサブディレクトリが同期された後にのみ可能であることを願っています。

関連情報