|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
, H- b' W/ T& |/ C1 u! g) Z$ {如何查看dd的拷贝进度) L0 H) p' j; I
/ `' J* q& ^ n# `3 @ Q! x
linux中的DD命令可以很方便的作二进制拷贝,比如可以做硬盘克隆。
& ?) v1 ]" C4 P一般使用方式如下:
; G( V2 V' v) r; l: V/ T
: g% z4 H6 K0 z- X) Kdd if=/src/device/name of=/dst/device/name
* R, j1 [% _$ z" W1 W
0 m3 f+ c7 B, z& u q... 然后就等它完成,进程退出8 K: l' B7 H' U) s
! i3 D, }* i4 a( W; m( y但是当我们需要copy的东西很巨大的时候,这个过程是很痛苦的6 ^1 e9 I6 ~5 S3 e- }# i8 x+ \* G
6 w7 l4 E- e- H% W$ w1 l* o8 q0 b
很多人会查看iostat, 来估算大概需要多少时间完成, 这是很不直观的, 也不可靠4 X* v2 s+ O; l8 f9 A
: V w" t" Y/ Y# A如果我们dd --help4 S0 i9 [5 U+ g
会看到其实是有方法可以查看copy进度的, 帮助文件中的example如下:
$ c- c u1 Z; a4 h1 G0 {
S% A; ~! g8 ]: T$ dd if=/dev/zero of=/dev/null& pid=$! 后台运行dd测试,保存进程号到pid中
; _2 e/ N8 l+ I& ]1 s$ z' y9 p" X% S0 ]9 k: I9 m% S+ ~
实际我们使用的时候可以新开一个终端,
- W( t+ t% X. |8 L/ h; d1 g" y' y8 o( ]( y' ?% K. N. F; F
ps -ef | grep dd5 t b& |5 p, q$ y2 i
$ c5 ~$ w+ J0 E' Z4 k' R
找到dd的PID, 然后发送USR1(用户自定义信号),查看copy进度
9 }7 h! j: U' |5 `" Y% B( e7 D( A
( k+ i7 w- U0 u" @, t有些场合我们可能使用当前这个终端, 那么我们可以把当前运行的dd转到后台:ctrl+z, 这时候dd进程被stop了,使用bg %1让其在后台继续运行,并且编为1号,后面如果要它到前台运行,只要键入fg %1就可以了.
, k0 I4 V5 ~# u9 S2 Z' D3 w7 o' Y
9 e+ E3 P, Z- U$ D% Z2 a; M然后我们输入kill -USR1 PID, 这里的PID是前面用ps查看到的进程号5 p3 c; |) K, I! I. {8 h/ s5 t
这时候你就能看到当前的copy信息了,以及平均copy速度) f: f4 q: x5 B, c
. X" h$ q( b6 c/ U5 K( @' U( G& l' \. z% t1 s. h: A
可以结合watch -n 1 kill -USR1 PID实时刷新copy进度。
! `) T1 h6 V6 }) j; m
7 G3 h) _! z% w4 e |
|