如何将dd重定向到pv?

如何将dd重定向到pv?

这是我需要修改的 dd 命令:

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

现在我想用它来pv限制从 NFS 服务器复制的速度。我怎样才能做到这一点?我知道这--rate-limit可以完成工作,但我不确定如何构建管道。

答案1

如果由于某种原因你必须使用大小为 16K 的块读取块设备:

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

其中<rate>是每秒允许传输的最大字节数,或者如果指定了 K、M、G、[...],则每秒允许传输的最大千字节数、毫字节数、千兆字节数、[...] 数。

但是,如果您确实不需要使用 16K 块大小来读取文件,只需使用pv,它可以读取块设备:

pv -L <rate> /mnt/nfs > /dev/sda

答案2

你不需要dd这里。pv已经完成了将输入铲到输出的工作。

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

尽管您可能在某些网页上读过这些内容,但dd.您不需要使用它来访问设备。所有的魔力都在/dev/stuff.

/tmp/nfs注意:如果是磁盘映像并且您想将其写入磁盘,则此命令有意义/dev/sda。除了速率限制之外,它相当于您问题中的命令。似乎不涉及 NFS 服务器。

相关内容