我怎么知道’dd`克隆需要多长时间?

我必须使用几个1TB硬盘。 他们花了几个小时来克隆,我想知道是否有任何可能的方法可以知道他们的速度有多快,他们做了多少以及他们需要多长时间来复制其余部分。

我只能看到运行命令的终端。 当我至少运行ps -e ,我知道dd正在显示的CPU使用情况,但我无法知道它已完成了多少或完成所需的时间。

有点让我发疯。

对任何管道流使用程序pv查看传输数据的实时报告。 它可以用于任何使用管道的应用程序。 它也是一个很好的工具,用于查看USB,外部磁盘,联网计算机等设备的传输速率。

 dd if=infile | pv > outfile 

或者直接复制,只需使用:

 pv infile > outfile 

例:

 sudo pv /dev/sda1 > /home/user/sda1.ext4.img 

典型。 当我问一些事情时,我会以某种方式找到答案(即使我看了好几个小时……但神奇地我在创建问题之后找到了答案 – .-)。 无论如何我用dd --help检查了 – 帮助结束时提到的帮助(我真的不相信我没看到)以下内容:

 Sending a USR1 signal to a running `dd' process makes it print I/O statistics to standard error and then resume copying. $ dd if=/dev/zero of=/dev/null& pid=$! $ kill -USR1 $pid; sleep 1; kill $pid 18335302+0 records in 18335302+0 records out 9387674624 bytes (9.4 GB) copied, 34.6279 seconds, 271 MB/s 

这意味着在另一个终端中,您将使用要检查的DD的进程ID运行以下行。 例如,我的情况是Process Id 4112.您可以通过键入ps -e并查找dd或仅查看ps -e|grep dd并查看前面的数字来查看进程ID。 记下那个号码然后输入另一个终端窗口kill -USR1 4112; sleep 1; kill -USR1 4112; sleep 1; 这将给我自开始以来经过的时间,秒数以及已复制的数量。 至少现在我知道以大约40MB / s的速度复制1TB信息大约需要8个小时。

关于使用kill在Mac上显示信息,你必须传递-INFO标志而不是-USR1标志。 并记住它显示运行dd进程的终端中的信息,因此如果打开一个新选项卡以键入kill -INFO $PID (其中$PID是您使用ps -e | grep dd找到的数字),将不得不切换回运行dd的选项卡以查看输出。

现在,如果我能弄清楚如何将输出显示为GB或MB而不是普通字节……

已经有另一个名为dcfldd扩展dd做了很多有趣的事情,因为你要求http://dcfldd.sourceforge.net/

  1. sudo apt-get install dcfldd
  2. 而不是dd你写dcfldd