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

一部の人はrsyncの代わりにscpを使用することをお勧めします。私はrsyncのいくつかの機能(ファイルの一致など)を使用したいので、変更のアイデアは気に入らません。
また、これが何らかの形で動作する必要があるため、変更する理由はありません。

私の設定に関するいくつかの情報は次のとおりです。

  • 送信者:Proxmox VM(ドッカーホスト)
    • 4つのCPUコア(i5-8259Uで動作するProxmoxホスト)
    • 6GB RAM(通常は500MBの空きRAM + 4GBのスワップスペース)
  • 受信機:ラズベリーパイ4B
    • 4GB RAM

VMは完全に更新されたDebianを実行しており、Raspberry PiはRaspbian OSを実行しています。やはり完全に更新されました。また、両方のホストの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

ベストアンサー1

おすすめ記事