由于管道损坏而无法进行 rsync

Cer*_*rin 7 rsync mongodb

我正在尝试通过在两台服务器上停止 Mongo 然后运行以下命令来在生产服务器和开发环境之间镜像大型 Mongo 数据库:

rsync --archive --delete --recursive --verbose --compress --rsh "ssh -t -o StrictHostKeyChecking=no -i key.pem" remoteuser@remotehost:/var/lib/mongodb/ /var/lib/mongodb
Run Code Online (Sandbox Code Playgroud)

它运行良好几分钟,但随后因错误而停止:

receiving incremental file list
./
collection-228--5129329295041693519.wt
inflate returned -3 (0 bytes)
rsync error: error in rsync protocol data stream (code 12) at token.c(557) [receiver=3.1.1]
rsync: [generator] write error: Broken pipe (32)
rsync error: error in socket IO (code 10) at io.c(820) [generator=3.1.1]
Run Code Online (Sandbox Code Playgroud)

谷歌搜索错误表明这是某种网络连接问题,但我能够很好地连接到两台服务器。

如果我重新运行该命令,它会在完全相同的文件处失败并显示相同的错误消息。是什么原因导致此错误以及如何修复它?

小智 1

您是否尝试在本地和远程服务器之间同步数据,远程服务器看起来像 aws ec2 您可以使用以下命令来同步数据

rsync -ravhz "ssh -i /path/to/EC2_KEY.pem" /path/to/local/files/* EC2_USER@EC2_INSTANCE:/path/to/remote/files

请在同步之前检查服务器的来源和目的地,因为您可能会以错误的方向同步

如果您尝试从 ec2 同步到本地服务器,请检查您是否在服务器之间打开了正确的端口

首先尝试 telnet 并检查服务器之间的连接,您必须将 IP 和端口列入白名单,因为某些防火墙可能会阻止数据传输