|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
- y- G: y+ l9 A; B. j1 t$ i+ H' P
如何查看dd的拷贝进度
/ \ v) f5 _# U" @0 q3 b( X# W h- x
linux中的DD命令可以很方便的作二进制拷贝,比如可以做硬盘克隆。
P; o: R/ C6 m一般使用方式如下:5 B% a& F, d' d
1 R3 Z! C/ [' L2 Q) d$ Tdd if=/src/device/name of=/dst/device/name6 \3 _2 [7 G; Q( l
+ Z9 L6 i' y( z/ Y... 然后就等它完成,进程退出
# y8 \8 y+ s( o( f4 {+ I! B' R1 n5 y3 w. V+ Q3 [9 r4 e, r
但是当我们需要copy的东西很巨大的时候,这个过程是很痛苦的) [5 g' t1 Z$ l2 y! s. a u/ g8 X
P2 {* z3 f8 j* P; i: U很多人会查看iostat, 来估算大概需要多少时间完成, 这是很不直观的, 也不可靠
/ q; o* c% j% c" l& X; k
5 _, u p9 i, \# y- U% F如果我们dd --help
! E5 U; G" O' \9 ^会看到其实是有方法可以查看copy进度的, 帮助文件中的example如下:
8 H4 m8 M, ~! l' o9 Z2 E+ p# Y
. w: A# x6 W/ p, I$ C7 y6 c$ dd if=/dev/zero of=/dev/null& pid=$! 后台运行dd测试,保存进程号到pid中9 ?0 S- l! B. y. ], k1 y5 ^
$ r/ G9 e, a8 C& f8 E实际我们使用的时候可以新开一个终端,8 E+ w2 @( ]- B
% k" J. Y! P0 q
ps -ef | grep dd
4 V. s/ ?4 `6 H2 ~; y4 Y: |( Y0 x4 k( [
找到dd的PID, 然后发送USR1(用户自定义信号),查看copy进度
% A9 W- E1 }+ ?* g, t" u3 l% _2 t1 y0 ~. C! _% A
有些场合我们可能使用当前这个终端, 那么我们可以把当前运行的dd转到后台:ctrl+z, 这时候dd进程被stop了,使用bg %1让其在后台继续运行,并且编为1号,后面如果要它到前台运行,只要键入fg %1就可以了.8 A3 \+ b2 n. c% A% P9 y5 I
) a: V8 F2 v u. T$ E
然后我们输入kill -USR1 PID, 这里的PID是前面用ps查看到的进程号
h/ r J5 H0 `3 f这时候你就能看到当前的copy信息了,以及平均copy速度# ]; v; r. @0 ]0 ^+ L5 H
& ]; Y+ d# a! ^: I3 @- ^
' U9 d( n" T$ |. Z5 m可以结合watch -n 1 kill -USR1 PID实时刷新copy进度。8 n3 f+ f, d3 R8 F4 K
* a9 M0 v) J% s0 e |
|