rsync 传输“损坏的管道 (32)”连接丢失

rsync 传输“损坏的管道 (32)”连接丢失

我正在尝试创建一个小脚本来将大量图像从 proxmox 虚拟机传输到同一 LAN 上的树莓派(大约 90 GB 的图像/视频)。
这并不总是按预期工作,因为我不断遇到 rsync 连接随机断开的情况。这不会发生在同一文件或目录上。每次失败时都会发生变化。
我收到的错误是:

2023/06/21 03:05:28 [902423] rsync: [sender] write error: Broken pipe (32)  
2023/06/21 03:05:28 [902423] sent 8888398299 bytes  received 24769 bytes  total size 43016448521  
2023/06/21 03:05:28 [902423] rsync error: unexplained error (code 255) at io.c(823) [sender=3.2.3]

我觉得我现在已经遍布互联网了。或者只是因为我没有搜索正确的关键字。
我尝试在发送主机上添加 和 ,但没有成功ServerAliverInterval。 其他人则认为这可能与缺乏记忆有关。我不完全确定如何测试这一点,但我一直在关注发送主机以及接收端的内存使用情况,这似乎也不是问题。同样,我不知道如何确定这一点。ServerAliveCountMax~/.ssh/config

有些人建议您使用 scp 而不是 rsync。我只是不喜欢改变的想法,因为我想使用 rsync 的一些功能(例如文件匹配)。
另外,我看不出改变的理由,因为这必须以某种方式起作用。

这是我的设置的一些信息:

  • 发送者:Proxmox VM(docker 主机)
    • 4 个 CPU 核心(Proxmox 主机在 i5-8259U 上运行)
    • 6 GB RAM(通常 500 MB 可用 RAM + 4 GB 交换空间)
  • 接收器:树莓派4B
    • 4 GB 内存

VM 正在运行完全更新的 Debian,而 Raspberry Pi 正在运行 Raspbian 操作系统 - 也已完全更新。还应该注意的是,两台主机上的 rsync 版本是相同的。

当 rsync 运行时,我尝试进行连续 ping 操作。这并没有显示出任何网络问题的迹象。
我还尝试过从发送机器到接收者进行另一个 ssh 会话。当文件传输失败时,此连接不会断开。
有谁知道我可以尝试做什么来完成这项工作?

这是我的脚本:

#!/bin/bash


# Check if script has root privileges #
if [[ "$EUID" -ne '0' ]]
  then echo "Missing root privileges"
  exit
fi

if [[ "$EUID" -eq '0' ]]; then
  echo "Root privileges - check"
    if ! rsync -caPv --log-file="/home/user/backup-outputs/datalibrary-transfer-$(date +"%d%m%Y").log" '/srv/docker/datalibrary/' [email protected]:"/home/backup/backup-stuff/datalibrary-$(date +"%d%m%Y")/" ; then
    mv "/home/user/backup-outputs/datalibrary-transfer-$(date +"%d%m%Y").log" "/home/user/backup-outputs/datalibrary-transfer-$(date +"%d%m%Y")-failed.log" 
    fi
  else
    echo "Unknown error" > /home/user/backup-outputs/error.log
fi

 
 

这是两台主机的 rsync 版本:
VM:

rsync  version 3.2.3  protocol version 31

Capabilities:
    64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints,
    socketpairs, hardlinks, hardlink-specials, symlinks, IPv6, atimes,
    batchfiles, inplace, append, ACLs, xattrs, optional protect-args, iconv,
    symtimes, prealloc, stop-at, no crtimes
Optimizations:
    SIMD, asm, openssl-crypto
Checksum list:
    xxh128 xxh3 xxh64 (xxhash) md5 md4 none
Compress list:
    zstd lz4 zlibx zlib none

转速:

rsync  version 3.2.3  protocol version 31

Capabilities:
    64-bit files, 64-bit inums, 32-bit timestamps, 64-bit long ints,
    socketpairs, hardlinks, hardlink-specials, symlinks, IPv6, atimes,
    batchfiles, inplace, append, ACLs, xattrs, optional protect-args, iconv,
    symtimes, prealloc, stop-at, no crtimes
Optimizations:
    no SIMD, no asm, openssl-crypto
Checksum list:
    xxh128 xxh3 xxh64 (xxhash) md5 md4 none
Compress list:
    zstd lz4 zlibx zlib none

相关内容