可能重复:
dd:我怎么知道它是否仍在工作?
我正在使用dd
将磁盘克隆到图像文件,并动态压缩它:
dd if=/dev/sda | gzip > /mnt/image_file
Run Code Online (Sandbox Code Playgroud)
如何查看dd
已经处理了多少数据?
查看输出文件大小当然没用,因为它被压缩了。
Chr*_*own 10
大多数dd
实现在收到SIGUSR1
. pkill -USR1 -x dd
可能是你想要的。
尝试pv
,管道查看器。我刚刚测试过,它可以/dev/sda
直接运行,这意味着你甚至会得到一个确定性的进度条。
关于时间:
我创建了一个随机文件dd if=/dev/urandom of=random bs=4k count=10000
。然后我尝试了几种阅读方法:
$ time dd if=random | gzip >rand.gz
800000+0 records in
800000+0 records out
409600000 bytes (410 MB) copied, 17.9261 s, 22.8 MB/s
real 0m17.940s
user 0m16.545s
sys 0m1.248s
$ time pv random | gzip >rand.gz
391MB 0:00:17 [22.1MB/s] [==================================>] 100%
real 0m18.048s
user 0m16.477s
sys 0m1.048s
$ time <random gzip >rand.gz
real 0m18.410s
user 0m16.401s
sys 0m0.596s
Run Code Online (Sandbox Code Playgroud)
我又跑了,pv
并且dd
甚至接近和低于<
。我的结论是性能pv
和dd
是相同的错误影响很小的幅度内。