Como redirecionar dd para pv? [duplicado]

1

Este é o meu comando dd que eu preciso modificar:

dd if=/tmp/nfs/image.dd of=/dev/sda bs=16k

Agora, gostaria de usar pv para limitar a velocidade de cópia do servidor NFS. Como posso conseguir isso? Eu sei que --rate-limit faz o trabalho, mas não sei como construir tubos.

    
por Pablo 20.09.2015 / 22:05

2 respostas

1

Se por algum motivo você precisar ler o dispositivo de bloco usando um tamanho de bloco de 16K:

dd if=/mnt/nfs bs=16k | pv -L <rate> > /dev/sda

Em que <rate> é a quantidade máxima permitida de bytes por segundo a ser transferida, ou a quantidade máxima permitida de kibibytes, mibibytes, gibibytes, [...] por segundo a ser transferida se K, M, G, [ ...] é especificado.

No entanto, se você realmente não precisa ler o arquivo usando um tamanho de bloco de 16K, use apenas pv , que pode ler dispositivos de bloco:

pv -L <rate> /mnt/nfs > /dev/sda
    
por 20.09.2015 / 22:26
1

Você não precisa de dd aqui. pv já faz o trabalho de remover sua entrada para sua saída.

pv -L 1m </tmp/nfs >/dev/sda

Apesar do que você pode ter lido em algumas páginas da web, não há mágica em dd . Você não precisa usá-lo para acessar dispositivos. Toda a magia está no /dev/stuff .

Nota: este comando faz sentido se /tmp/nfs for uma imagem de disco e você quiser gravá-la no disco /dev/sda . É equivalente ao comando em sua pergunta, além da limitação de taxa. Nenhum servidor NFS parece estar envolvido.

    
por 20.09.2015 / 22:27

Tags