我怎么知道’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/
-
sudo apt-get install dcfldd
- 而不是
dd
你写dcfldd