gzip - redirecionamento ou tubulação?

8

Eu estarei fazendo backup de um disco grande (750 GB) em um disco USB externo usando dd.
Devo estar usando redirecionamento ou tubulação? Qual é mais eficiente? Ou existe alguma diferença?

Além disso, qual é o melhor tamanho de bloco? USB é provável que seja o gargalo aqui.

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

vs

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

Obrigado.

    
por mcu 12.03.2012 / 07:17

3 respostas

3

O piping envolve mais um processo e mais uma cópia de usuário, então deve ser mais eficiente para usar o redirecionamento.

Mas eu acho que hoje em dia hardware & sistema de cache de software, não deve fazer nenhuma diferença real. Talvez você possa ter resultados melhores usando bs=4k ou bs=64k , pois é o limite do tubo no linux. Veja esta pergunta para mais detalhes sobre diferentes bs .

    
por 12.03.2012 / 13:39
7

Você não precisa usar dd ou canalização.

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

Eu uma vez fez um benchmark e encontrou usando dd mais lento que cat para uma cópia direta entre diferentes discos. Eu esperaria que o pipe fizesse qualquer solução envolvendo dd ainda mais lenta neste caso.

    
por 13.03.2012 / 09:38
0

Mais simples:

gzip -c /dev/sda > disk.img.gz
gzip -dc /mnt/sdb1/backups/disk.img.gz > /dev/sda 
    
por 09.08.2018 / 13:30

Tags