我正在将大约 300K 文件(每个文件大约 30MB)从一个目录复制到另一个目录。我使用以下命令来保留文件夹结构
find . -name '*.msg' -exec cp -p --parents \{\} /destinated_folder \;
我遇到了这个错误信息
packet_write_wait: Connection to aa.bbb.ccc.dd port ee: Broken pipe`
脚本正在运行,但不知何故中途停止了。我也看到过类似的rsync
讨论这里。
我想知道解决方案可能是什么?我使用的是具有 6vCPU 和 32GB 内存的 Ubuntu。
答案1
如果您使用,find -exec cp
您将拥有一个在发生错误时无法轻松重新启动的进程。我不相信您看到的错误与您向我们展示的命令有关,因为命令中没有引用网络。
也许您正在从 SMB/NFS 驱动器复制或向 SMB/NFS 驱动器复制? (如果是这样,如果您可以登录到远程系统并让其rsync
管理网络复制,您将获得更高效的副本。)
尽管如此,此rsync
命令将允许您多次重新启动复制过程(包括处理您已经制作的副本)
rsync -av --include '*.msg' --include '*/' --exclude '*' --prune-empty-dirs --dry-run . /destinated_folder/
--dry-run
当您很高兴它能达到您的预期时,请将其删除。