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生成的行数和设备排序在两次运行之间是相同的?
按照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
解决方案不是很优雅(它不是单行),但似乎有效.
接受答案的一个班轮版本(我只有1个声誉,因此我无法发表评论):
paste -d= <(iostat -x | awk '{print $1}') <(iostat -xn | awk '{print $NF}') | tail -n +3