Bash 并行 dd 和 mkfs
Bash parallel dd and mkfs
嘿,你们这些很棒的编码人员,
起初我在 bash 完全是个新手,在 Java 方面只有一些经验。
现在我的任务是制作一个脚本,使在 linux 机器上尽可能快速和自动地闪存几百个 USB 驱动器成为可能,这不应该改变。
所以没有安装更多的包。
好的,现在开始提问:
我已将任务拆分为两个脚本。
过滤 lsusb 并搜索正确的设备,然后使用设备 ID 启动后台进程以复制图像并执行一些分区操作。
主脚本同时过滤新设备并创建一个新的后台进程来为它们复制。
当没有更多合适的设备剩余时,主脚本等待所有后台进程完成,然后要求用户拉出所有设备并将下一批插入。
目前,除了 dd 在一个后台进程中等待另一个进程完成之外,它工作得很好。因为它们应该 运行 并行并且启动 dd 的进程有不同的 pid,我不知道为什么要等待。
这是脚本的一部分:
第一个参数是序列号,第二个参数是要复制的镜像文件名
您可以尝试将 sync
从第 8 行移动到 echo "all connected devices are flashed, please change devices"
上面的行或等待 (wait $i
) 所有操作完成后的另一行。
嘿,你们这些很棒的编码人员,
起初我在 bash 完全是个新手,在 Java 方面只有一些经验。 现在我的任务是制作一个脚本,使在 linux 机器上尽可能快速和自动地闪存几百个 USB 驱动器成为可能,这不应该改变。 所以没有安装更多的包。
好的,现在开始提问: 我已将任务拆分为两个脚本。
过滤 lsusb 并搜索正确的设备,然后使用设备 ID 启动后台进程以复制图像并执行一些分区操作。
主脚本同时过滤新设备并创建一个新的后台进程来为它们复制。 当没有更多合适的设备剩余时,主脚本等待所有后台进程完成,然后要求用户拉出所有设备并将下一批插入。
目前,除了 dd 在一个后台进程中等待另一个进程完成之外,它工作得很好。因为它们应该 运行 并行并且启动 dd 的进程有不同的 pid,我不知道为什么要等待。
这是脚本的一部分:
第一个参数是序列号,第二个参数是要复制的镜像文件名
您可以尝试将 sync
从第 8 行移动到 echo "all connected devices are flashed, please change devices"
上面的行或等待 (wait $i
) 所有操作完成后的另一行。