我在服务器 A 上运行(来源):
dd bs=16M if=/dev/sda|bzip2 -c|nc serverB.example.net 19000
在服务器 B(目标)上:
nc -l -p 19000|bzip2 -d|dd bs=16M of=/dev/sdb
我需要在某处看到一些进展吗?(服务器 A /dev/sda 是 50GB)
我已经等了 20 分钟,两者仍然在运行,我怎么知道它真的在传输数据/等等?
答案1
dd
向进程发送USR1
信号:
$ dd if=/dev/urandom of=/dev/null &
[1] 977
$
$ kill -USR1 977
274647+0 records in
274646+0 records out
140618752 bytes (141 MB) copied, 17.3286 s, 8.1 MB/s
$
答案2
您尝试过 pv 吗?http://www.ivarch.com/programs/pv.shtml
dd bs=16M if=/dev/sda|bzip2 -c| pv | nc serverB.example.net 19000
nc -l -p 19000| pv | bzip2 -d| dd bs=16M of=/dev/sdb
祝你好运!
答案3
找到你想要检查 I/O 的进程的 PID,在你的情况下,dd
服务器 b 是一个不错的选择
cat /proc/<PID>/io
查看wchar
应为字节写入值的值。
为了将来参考,您可以插入光伏进入其中一个(或两个)管道,它会告诉您有多少数据通过了它。
dd bs=16M if=/dev/sda|bzip2 -c|pv|nc serverB.example.net 19000
225MB 0:04:48 [ 799kB/s] [ <=> ]
答案4
您可以使用它iftop
来查看网络流量或iotop
IO 使用情况。