EDA365电子论坛网

标题: 怎样查看dd的拷贝进度呢?看下文 [打印本页]

作者: ulppknot    时间: 2020-1-22 09:51
标题: 怎样查看dd的拷贝进度呢?看下文

3 l' q2 [- m8 T  t) C如何查看dd的拷贝进度
1 C; T0 ~1 C) r# _+ H4 T3 r+ v# D% [
linux中的DD命令可以很方便的作二进制拷贝,比如可以做硬盘克隆。
8 ~, t0 W& h# d0 R; A5 A- N一般使用方式如下:
1 v0 S2 x4 J9 ?  m+ W' M$ h. K. ?4 ?$ v- X  E& G" z
dd if=/src/device/name of=/dst/device/name5 b( I0 i  |4 Q# k, a
  Y& I. h6 m* o5 c. ^5 ^, B
... 然后就等它完成,进程退出
0 d: }; @. |- P! ~4 Q
9 M& {* ]* N! {* ]; ?4 h但是当我们需要copy的东西很巨大的时候,这个过程是很痛苦的  X. f5 q, e, ?. f6 d3 Y* H% S

  [9 C* m- T+ b$ f很多人会查看iostat, 来估算大概需要多少时间完成, 这是很不直观的, 也不可靠
' |2 I8 c/ Y: g3 z1 C: b6 D8 W/ ~! Q4 e$ s3 n' b/ B
如果我们dd --help* ]8 T; x, i$ c0 e6 b3 c& b
会看到其实是有方法可以查看copy进度的, 帮助文件中的example如下:0 J$ j$ ~: I* Y/ R3 A6 u
# ?4 d' U# g1 \3 \- Y5 f
$ dd if=/dev/zero of=/dev/null& pid=$!    后台运行dd测试,保存进程号到pid中
- Y! K& K. p# V" e4 Z- U+ z* J- P5 Z8 h
实际我们使用的时候可以新开一个终端,
( ]% v0 p6 g8 `4 Z2 n
3 |: f5 \- z) m" ^0 ^5 Hps -ef | grep dd
+ }6 K7 B) D8 V0 x& |6 }
% K* F- D) `" O* ]+ I* H; N找到dd的PID, 然后发送USR1(用户自定义信号),查看copy进度
+ V# I) z, m( h: w
; l; w. F3 Q, y) Z5 ^有些场合我们可能使用当前这个终端, 那么我们可以把当前运行的dd转到后台:ctrl+z, 这时候dd进程被stop了,使用bg %1让其在后台继续运行,并且编为1号,后面如果要它到前台运行,只要键入fg %1就可以了.
# J" a0 N/ O; ~0 g0 M( j( o( q# I) H/ D2 B- N& R
然后我们输入kill -USR1 PID, 这里的PID是前面用ps查看到的进程号9 K6 |1 m% d) w
这时候你就能看到当前的copy信息了,以及平均copy速度
& E% ]; L6 ]. X1 x$ n! ?* ?0 \. G& f$ }( c) d) h5 e% h& W( y
+ |# l- R) j& T3 l5 ~
可以结合watch -n 1 kill -USR1 PID实时刷新copy进度。
% f# b. p8 _1 y7 \4 f% U! D
; D3 E/ R! a" E9 y3 ?
作者: ExxNEN    时间: 2020-1-22 16:36
查看dd的拷贝进度呢




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2