监视远程DD操作并显示进度

时间:2016-01-26 00:16:21

标签: bash ssh centos dd

让我先说“我不是程序员”。

我有一个脚本,我执行该脚本以在测试期间在存储阵列上创建可用空间。该脚本按设计工作,但是我在监视进度时遇到问题。我从主机(主)执行脚本。主机在后台对worker执行DD命令。每个工作人员都定义了多个SD。命令结构如下:

ssh root@worker1 dd if=/dev/zero of=/dev/sdb bs=1G count=256 &
ssh root@worker1 dd if=/dev/zero of=/dev/sdc bs=1G count=256 &
ssh root@worker2 dd if=/dev/zero of=/dev/sdb bs=1G count=256 &
ssh root@worker2 dd if=/dev/zero of=/dev/sdc bs=1G count=256 &
ssh root@worker3 dd if=/dev/zero of=/dev/sdb bs=1G count=256 &
ssh root@worker3 dd if=/dev/zero of=/dev/sdc bs=1G count=256 &
ssh root@worker4 dd if=/dev/zero of=/dev/sdb bs=1G count=256 &
ssh root@worker4 dd if=/dev/zero of=/dev/sdc bs=1G count=256 &

这种方法效果很好,我在后端存储上获得了出色的写入吞吐量。问题是我需要知道这些过程何时完成。完成后,我需要执行测试的下一阶段。

理想情况下,我需要一种方法来持续监控工人的DD流程并提供进度。当它们全部完成后,脚本将退出,下一阶段的测试应该开始。

更新***

我从使用DD切换到现在使用blkdiscard。我想要做的事情要快得多。新的命令结构如下所示。

ssh root@worker1 blkdiscard -o 256G -l 256G -p 1G /dev/sdb &
ssh root@worker1 blkdiscard -o 256G -l 256G -p 1G /dev/sdc &

如果这有助于其他任何人。

2 个答案:

答案 0 :(得分:1)

由于@shellter和我找到的另一篇文章,我能够解决这个问题。我没有等待,而是使用上一个运行命令的进程ID。

{{1}}

然后结果是消息:准备数组以进行快照测试,最后使用旋转光标。

答案 1 :(得分:0)

如果在命令末尾添加双&符号,则在第一个命令完成后将启动写入命令。

示例:

echo something && sleep 5 && echo anotherthing &