/dev/sda
시스템의 유일한 디스크입니다. 다른 서버에 원본 이미지로 저장하고 싶어요. 네트워크가 계속 끊겨서 한번에 못했어요.
예를 들어 토렌트가 가능합니까?
답변1
가장 효율적인 방법은 중단된 위치에서 전송을 재개하는 것입니다.
#!/bin/bash
source_disk=/dev/sda
host=1.2.3.4
host_image=/foo/bar.img
bytes_transferred() {
if ! ssh "$host" "test -e '$host_image'"; then
echo 0
return
fi
ssh "$host" "stat '%s' '$host_image'"
}
bytes_total() {
echo $(( $(blockdev --getsz $source_disk) * 512 ))
}
while (( $(bytes_transferred) < $(bytes_total) )); do
( dd bs=1 skip=$(bytes_transferred) count=0 2>/dev/null && cat ) < $source_disk | ssh "$host" "cat >> '$host_image'"
done
이것은 테스트되지 않았지만 작동해야 합니다. 기본적으로 대상 파일의 크기가 로컬 디스크의 크기보다 작을 때 계속 반복됩니다. 루프가 다시 시작될 때마다 이전에 중지된 위치에서 전송이 시작됩니다.