我正在尝试 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/{} {}
它最终仍然会失败,但希望只有在所有子目录都已同步之后。