当前位置:  开发笔记 > 编程语言 > 正文

地图sd?/ sdd?Solaris磁盘名称的名称?

如何解决《地图sd?/sdd?Solaris磁盘名称的名称?》经验,为你挑选了2个好方法。

Solaris中的某些命令(例如iostat)使用磁盘名称(如sd0或sdd2)报告磁盘相关信息.是否有一致的方法将这些名称映射回标准/ dev/dsk/c?t?d?s?Solaris中的磁盘名称?

编辑:正如Amit所指出的,iostat -n会生成设备名称,例如c0t0d0s0而不是sd0.但是我如何发现sd0实际上是c0t0d0s0?我正在寻找能产生如下列表的东西:

sd0=/dev/dsk/c0t0d0s0
...
sdd2=/dev/dsk/c1t0d0s4
...
也许我可以运行iostat两次(有和没有-n)然后加入结果并希望iostat生成的行数和设备排序在两次运行之间是相同的?



1> Erlend Legan..:

按照Amit的想法回答我自己的问题,这就是我想出的:

iostat -x|tail -n +3|awk '{print $1}'>/tmp/f0.txt.$$
iostat -nx|tail -n +3|awk '{print "/dev/dsk/"$11}'>/tmp/f1.txt.$$
paste -d= /tmp/f[01].txt.$$
rm /tmp/f[01].txt.$$

在Solaris 10服务器上运行此命令会提供以下输出:

sd0=/dev/dsk/c0t0d0
sd1=/dev/dsk/c0t1d0
sd4=/dev/dsk/c0t4d0
sd6=/dev/dsk/c0t6d0
sd15=/dev/dsk/c1t0d0
sd16=/dev/dsk/c1t1d0
sd21=/dev/dsk/c1t6d0
ssd0=/dev/dsk/c2t1d0
ssd1=/dev/dsk/c3t5d0
ssd3=/dev/dsk/c3t6d0
ssd4=/dev/dsk/c3t22d0
ssd5=/dev/dsk/c3t20d0
ssd7=/dev/dsk/c3t21d0
ssd8=/dev/dsk/c3t2d0
ssd18=/dev/dsk/c3t3d0
ssd19=/dev/dsk/c3t4d0
ssd28=/dev/dsk/c3t0d0
ssd29=/dev/dsk/c3t18d0
ssd30=/dev/dsk/c3t17d0
ssd32=/dev/dsk/c3t16d0
ssd33=/dev/dsk/c3t19d0
ssd34=/dev/dsk/c3t1d0

解决方案不是很优雅(它不是单行),但似乎有效.


你可以把这个全部折叠成一个(bash)命令并避免任何临时文件:`paste -d = <(iostat -x | tail -n +3 | awk'{print $ 1}')<(iostat -nx | tail - n +3 | awk'{print"/ dev/dsk /"$ 11}')`

2> 小智..:

接受答案的一个班轮版本(我只有1个声誉,因此我无法发表评论):

  paste -d= <(iostat -x | awk '{print $1}') <(iostat -xn | awk '{print $NF}') | tail -n +3

推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有