gzip - 리디렉션 또는 파이프?

gzip - 리디렉션 또는 파이프?

dd를 사용하여 대용량(750GB) 디스크를 외부 USB 디스크에 백업하겠습니다.
리디렉션이나 파이프를 사용해야 합니까? 어느 것이 더 효율적인가요? 아니면 차이가 있나요?

또한 최적의 청크 크기는 얼마입니까? 여기서 USB가 병목 현상을 일으킬 수 있습니다.

dd if=/dev/sda bs=1M | gzip -c > /mnt/sdb1/backups/disk.img.gz

gzip -dc /mnt/sdb1/backups/disk.img.gz | dd of=/dev/sda bs=1M

그리고

dd if=/dev/sda bs=1M | gzip -c | dd of=/mnt/sdb1/backups/disk.img.gz

dd if=/mnt/sdb1/backups/disk.img.gz | gzip -dc | dd of=/dev/sda bs=1M

감사해요.

답변1

dd전혀 사용하거나 파이프할 필요가 없습니다.

</dev/sda gzip >/mnt/sdb1/backups/disk.img.gz
</mnt/sdb1/backups/disk.img.gz gunzip >/dev/sda

나는 예전에벤치마크를 설정하다다른 디스크 간에 직접 복사하는 것 dd보다 사용량이 더 느린 것으로 나타났습니다 . cat이 경우 파이프라인이 관련된 모든 솔루션을 훨씬 더 느리게 만들 것으로 기대합니다 dd.

답변2

파이프라인에는 하나 이상의 프로세스와 하나 이상의 사용자 공간 복사본이 포함되므로~해야 한다리디렉션을 보다 효율적으로 사용하세요.

그러나 오늘날의 하드웨어 및 소프트웨어 캐싱 시스템에서는 이것이 실질적인 차이를 가져서는 안 된다고 생각합니다. 어쩌면 또는 그대로 bs=4k사용하면 더 나은 결과를 얻을 수 있습니다.bs=64k파이프라인 한도리눅스에서. 바라보다이 문제다양한 내용에 대한 자세한 내용무의미한 말매개변수.

답변3

더 간단하다:

gzip -c /dev/sda > disk.img.gz
gzip -dc /mnt/sdb1/backups/disk.img.gz > /dev/sda 

관련 정보