如题,公司很多组装服务器,没有"硬盘灯闪烁"的功能,所以就利用 dd 来读取硬盘,让 led 灯一闪一闪的来识别.
while true; do dd if=/dev/sdb of=/dev/null bs=1M count=300; sleep 1; done
上面只是对 sdb 操作,如何编写为 shell,后面跟 sdc 等盘符来批量操作呢?
1
ShadowStar 2017-08-25 14:21:36 +08:00
#!/bin/sh -
while true do for i in $@ do dd if=/dev/$i of=/dev/null bs=1M count=300; sleep 1; done sleep 5 done 这样可以批量顺序闪烁多个硬盘 |
2
mrco OP @ShadowStar 这样是 for 循环的呢,如何让指定的硬盘同时 dd 呢? 这样在现场更换硬盘的人就一下看出来了
|
3
ShadowStar 2017-08-25 14:35:23 +08:00
@mrco 同时 dd 多个盘?那怎么分辨哪个是哪个呢?
我写的是按照顺序 dd 的。 |
4
mrco OP @ShadowStar 对,就是要同时 dd 多盘,不好意思,我这次是取盘,所以全部亮灯最好,,,如果是更换的话当然要有顺序来识别了..
|
5
ShadowStar 2017-08-25 14:55:04 +08:00
@mrco
#!/bin/sh - while true do echo $@ | xargs -P $# -I % sh -c "dd if=/dev/% of=/dev/null bs=1m count=300" sleep 1 done |
6
mrco OP @ShadowStar
```shell bash 3.sh sdb sdc sdd sde ``` ``` dd: unrecognized operand ‘ sdc ’ Try 'dd --help' for more information. ``` |
7
mrco OP @ShadowStar 我看了下, 好像 dd 不支持传入的参数
|