如何利用 dd 命令来帮助现场人员识别服务器硬盘位置?

2017-08-25 14:01:21 +08:00
 mrco

如题,公司很多组装服务器,没有"硬盘灯闪烁"的功能,所以就利用 dd 来读取硬盘,让 led 灯一闪一闪的来识别.

while true; do dd if=/dev/sdb of=/dev/null bs=1M count=300; sleep 1; done

上面只是对 sdb 操作,如何编写为 shell,后面跟 sdc 等盘符来批量操作呢?

1847 次点击
所在节点    问与答
7 条回复
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

这样可以批量顺序闪烁多个硬盘
mrco
2017-08-25 14:33:34 +08:00
@ShadowStar 这样是 for 循环的呢,如何让指定的硬盘同时 dd 呢? 这样在现场更换硬盘的人就一下看出来了
ShadowStar
2017-08-25 14:35:23 +08:00
@mrco 同时 dd 多个盘?那怎么分辨哪个是哪个呢?
我写的是按照顺序 dd 的。
mrco
2017-08-25 14:36:54 +08:00
@ShadowStar 对,就是要同时 dd 多盘,不好意思,我这次是取盘,所以全部亮灯最好,,,如果是更换的话当然要有顺序来识别了..
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
mrco
2017-08-25 17:28:30 +08:00
@ShadowStar
```shell
bash 3.sh sdb sdc sdd sde
```


```
dd: unrecognized operand ‘ sdc ’
Try 'dd --help' for more information.
```
mrco
2017-08-25 18:07:16 +08:00
@ShadowStar 我看了下, 好像 dd 不支持传入的参数

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/385722

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX