Proxmox 가상 머신에서 동일한 LAN(약 90GB의 이미지/비디오)에 있는 라즈베리 파이로 많은 수의 이미지를 전송하기 위한 작은 스크립트를 만들려고 합니다.
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(도커 호스트)
- CPU 코어 4개(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