前段时间需要验证SUT多盘的性能,目前自己总结了一下方法,方便后面使用。
一,首先遍历盘的指令有很多种,说下其中比较常见的。
1 lsblk : 最为常见的指令,不过一般我们在遍历盘的时候不用这个指令。
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 400G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 399G 0 part
├─centos-root 253:0 0 50G 0 lvm /
├─centos-swap 253:1 0 3.9G 0 lvm [SWAP]
└─centos-home 253:2 0 345.1G 0 lvm /home
2 ,ls -l /dev/ |egrep “sd[a-z]|nvme”
[root@localhost ~]# ls -l /dev/ |egrep "sd[a-z]|nvme"
crw------- 1 root root 246, 0 Jan 29 19:49 nvme0
brw-rw---- 1 root disk 259, 0 Feb 1 01:30 nvme0n1
crw------- 1 root root 246, 1 Jan 29 19:49 nvme1
brw-rw---- 1 root disk 259, 1 Feb 1 01:30 nvme1n1
lrwxrwxrwx 1 root root 4 Jan 29 19:47 root -> sda2
brw-rw---- 1 root disk 8, 0 Feb 1 01:30 sda
brw-rw---- 1 root disk 8, 1 Feb 1 01:30 sda1
brw-rw---- 1 root disk 8, 2 Feb 1 01:30 sda2
brw-rw---- 1 root disk 8, 3 Feb 1 01:30 sda3
brw-rw---- 1 root disk 8, 16 Jan 29 20:45 sdb
这个指令是我们在脚本中常用来遍历的,比如:
遍历所有的SATA盘
ls -l /dev/ |grep “sd[a-z]”
[root@localhost ~]# ls -l /dev/ |grep "sd[a-z]"
lrwxrwxrwx 1 root root 4 Jan 29 19:47 root -> sda2
brw-rw---- 1 root disk 8, 0 Feb 1 01:30 sda
brw-rw---- 1 root disk 8, 1 Feb 1 01:30 sda1
brw-rw---- 1 root disk 8, 2 Feb 1 01:30 sda2
brw-rw---- 1 root disk 8, 3 Feb 1 01:30 sda3
brw-rw---- 1 root disk 8, 16 Jan 29 20:45 sdb
[root@localhost ~]# ls -l /dev/ |grep "sd[a-z]*$"|awk '{print $NF}'
sda
sdb
遍历所有的nvme盘
[root@localhost ~]# ls -l /dev/ |grep "nvme[0-9]*$"
crw------- 1 root root 246, 0 Jan 29 19:49 nvme0
crw------- 1 root root 246, 1 Jan 29 19:49 nvme1
- cat /proc/partitions
这个也是我们在脚本中常用来遍历多盘的指令
过滤SATA盘
cat /proc/partitions |grep -Pv sd[a-z]
major minor #blocks name
259 0 3907018584 nvme0n1
259 1 3907018584 nvme1n1
259 2 130054144 pmem1
259 3 130054144 pmem3
259 4 130054144 pmem2
259 5 130054144 pmem5
259 6 130054144 pmem4
259 7 130054144 pmem6
259 8 130054144 pmem7
259 9 130054144 pmem0
[root@localhost ~]# cat /proc/partitions |grep sd[a-z]
8 0 1404960768 sda
8 1 1048576 sda1
8 2 157286400 sda2
8 3 52428800 sda3
4 ,lsscsi. 查看SATA盘
lsscsi
[0:0:0:0] disk ATA INTEL SSDSCKKB48 1102 /dev/sda
[10:0:0:0] disk ATA ST4000NM000A-2HZ TN02 /dev/sdb
[12:0:0:0] disk ATA ST8000NM000A-2KE SN01 /dev/sdc
有时候脚本中需要我们获取盘符,比如 /dev/sda , sda.sdb.等等。下面以lsscsi指令为例,总结一下常用的盘符获取的方法
a.第一种:awk -F
for i in lsscsi |awk '{print $NF}'|awk -F "/" '{print $NF}'
; do echo $i;done
for i in `lsscsi |awk '{print $NF}'|awk -F "/" '{print $NF}'`; do echo $i;done
sda
sdb
sdc
b.第二种:tr -s
for i in `lsscsi |awk '{print $NF}'|tr -s "/" " "|awk '{print $NF}'` ;do echo $i;done
sda
sdb
sdc
c.第三种:cut -d
for i in `lsscsi |awk '{print $NF}'|cut -d '/' -f 3` ;do echo $i;done
sda
sdb
sdc
d.第四种:sed 替换
lsscsi |awk ‘{print $NF}’ |sed “s#/dev/##g”
for i in `lsscsi |awk '{print $NF}' |sed "s#/dev/##g"` ;do echo $i;done
sda
sdb
5 顺便说一下,如果要遍历的盘符都是有规律的如sd[a-z]
这种。那我们可以直接获取
for i in sd{a..d};do echo $i;done
sda
sdb
sdc
sdd
6 比如我们遍历一个接了72个盘的SUT
ls -l /dev/ |egrep "sd[a-z]*$|nvme[0-9]*$"
crw------- 1 root root 246, 0 Feb 7 11:41 nvme0
crw------- 1 root root 246, 1 Feb 7 11:41 nvme1
brw-rw---- 1 root disk 8, 0 Feb 8 01:32 sda
brw-rw---- 1 root disk 65, 160 Feb 8 01:32 sdaa
brw-rw---- 1 root disk 65, 176 Feb 8 01:32 sdab
brw-rw---- 1 root disk 65, 192 Feb 8 01:32 sdac
brw-rw---- 1 root disk 65, 208 Feb 8 01:32 sdad
brw-rw---- 1 root disk 65, 224 Feb 8 01:32 sdae
brw-rw---- 1 root disk 65, 240 Feb 8 01:32 sdaf
brw-rw---- 1 root disk 66, 0 Feb 8 01:32 sdag
brw-rw---- 1 root disk 66, 16 Feb 8 01:32 sdah
brw-rw---- 1 root disk 66, 32 Feb 8 01:32 sdai
brw-rw---- 1 root disk 66, 48 Feb 8 01:32 sdaj
brw-rw---- 1 root disk 66, 64 Feb 8 01:32 sdak
brw-rw---- 1 root disk 66, 80 Feb 8 01:32 sdal
brw-rw---- 1 root disk 66, 96 Feb 8 01:32 sdam
brw-rw---- 1 root disk 66, 112 Feb 8 01:32 sdan
brw-rw---- 1 root disk 66, 128 Feb 8 01:32 sdao
brw-rw---- 1 root disk 66, 144 Feb 8 01:32 sdap
brw-rw---- 1 root disk 66, 160 Feb 8 01:32 sdaq
brw-rw---- 1 root disk 66, 176 Feb 8 01:32 sdar
brw-rw---- 1 root disk 66, 192 Feb 8 01:32 sdas
brw-rw---- 1 root disk 66, 208 Feb 8 01:32 sdat
brw-rw---- 1 root disk 66, 224 Feb 8 01:32 sdau
brw-rw---- 1 root disk 66, 240 Feb 8 01:32 sdav
brw-rw---- 1 root disk 67, 0 Feb 8 01:32 sdaw
brw-rw---- 1 root disk 67, 16 Feb 8 01:32 sdax
brw-rw---- 1 root disk 67, 32 Feb 8 01:32 sday
brw-rw---- 1 root disk 67, 48 Feb 8 01:32 sdaz
brw-rw---- 1 root disk 8, 16 Feb 8 09:23 sdb
brw-rw---- 1 root disk 67, 64 Feb 8 09:23 sdba
brw-rw---- 1 root disk 67, 80 Feb 8 09:23 sdbb
brw-rw---- 1 root disk 67, 96 Feb 8 09:23 sdbc
brw-rw---- 1 root disk 67, 112 Feb 8 09:23 sdbd
brw-rw---- 1 root disk 67, 128 Feb 8 09:23 sdbe
brw-rw---- 1 root disk 67, 144 Feb 8 09:23 sdbf
brw-rw---- 1 root disk 67, 160 Feb 8 09:23 sdbg
brw-rw---- 1 root disk 67, 176 Feb 8 09:23 sdbh
brw-rw---- 1 root disk 67, 192 Feb 8 09:23 sdbi
brw-rw---- 1 root disk 67, 208 Feb 8 09:23 sdbj
brw-rw---- 1 root disk 67, 224 Feb 8 09:23 sdbk
brw-rw---- 1 root disk 67, 240 Feb 8 09:23 sdbl
brw-rw---- 1 root disk 68, 0 Feb 8 09:23 sdbm
brw-rw---- 1 root disk 68, 16 Feb 8 09:23 sdbn
brw-rw---- 1 root disk 68, 32 Feb 8 09:23 sdbo
brw-rw---- 1 root disk 68, 48 Feb 8 09:23 sdbp
brw-rw---- 1 root disk 68, 64 Feb 8 09:23 sdbq
brw-rw---- 1 root disk 68, 80 Feb 8 09:23 sdbr
brw-rw---- 1 root disk 8, 32 Feb 8 09:23 sdc
brw-rw---- 1 root disk 8, 48 Feb 8 09:23 sdd
brw-rw---- 1 root disk 8, 64 Feb 8 09:23 sde
brw-rw---- 1 root disk 8, 80 Feb 8 09:23 sdf
brw-rw---- 1 root disk 8, 96 Feb 8 09:23 sdg
brw-rw---- 1 root disk 8, 112 Feb 8 09:23 sdh
brw-rw---- 1 root disk 8, 128 Feb 8 09:23 sdi
brw-rw---- 1 root disk 8, 144 Feb 8 09:23 sdj
brw-rw---- 1 root disk 8, 160 Feb 8 09:23 sdk
brw-rw---- 1 root disk 8, 176 Feb 8 09:23 sdl
brw-rw---- 1 root disk 8, 192 Feb 8 09:23 sdm
brw-rw---- 1 root disk 8, 208 Feb 8 09:23 sdn
brw-rw---- 1 root disk 8, 224 Feb 8 09:23 sdo
brw-rw---- 1 root disk 8, 240 Feb 8 09:23 sdp
brw-rw---- 1 root disk 65, 0 Feb 8 09:23 sdq
brw-rw---- 1 root disk 65, 16 Feb 8 09:23 sdr
brw-rw---- 1 root disk 65, 32 Feb 8 09:23 sds
brw-rw---- 1 root disk 65, 48 Feb 8 09:23 sdt
brw-rw---- 1 root disk 65, 64 Feb 8 09:23 sdu
brw-rw---- 1 root disk 65, 80 Feb 8 09:23 sdv
brw-rw---- 1 root disk 65, 96 Feb 8 09:23 sdw
brw-rw---- 1 root disk 65, 112 Feb 8 09:23 sdx
brw-rw---- 1 root disk 65, 128 Feb 8 09:23 sdy
brw-rw---- 1 root disk 65, 144 Feb 8 09:23 sdz
num=1
[root@localhost ~]# for i in `ls -l /dev/ |egrep "sd[a-z]*$|nvme[0-9]*$" |awk '{print $NF}'`;do echo " the ${num}th $i" let num++;done
the 1th nvme0
the 2th nvme1
the 3th sda
the 4th sdaa
the 5th sdab
the 6th sdac
the 7th sdad
the 8th sdae
the 9th sdaf
the 10th sdag
the 11th sdah
the 12th sdai
the 13th sdaj
the 14th sdak
the 15th sdal
the 16th sdam
the 17th sdan
the 18th sdao
the 19th sdap
the 20th sdaq
the 21th sdar
the 22th sdas
the 23th sdat
the 24th sdau
the 25th sdav
the 26th sdaw
the 27th sdax
the 28th sday
the 29th sdaz
the 30th sdb
the 31th sdba
the 32th sdbb
the 33th sdbc
the 34th sdbd
the 35th sdbe
the 36th sdbf
the 37th sdbg
the 38th sdbh
the 39th sdbi
the 40th sdbj
the 41th sdbk
the 42th sdbl
the 43th sdbm
the 44th sdbn
the 45th sdbo
the 46th sdbp
the 47th sdbq
the 48th sdbr
the 49th sdc
the 50th sdd
the 51th sde
the 52th sdf
the 53th sdg
the 54th sdh
the 55th sdi
the 56th sdj
the 57th sdk
the 58th sdl
the 59th sdm
the 60th sdn
the 61th sdo
the 62th sdp
the 63th sdq
the 64th sdr
the 65th sds
the 66th sdt
the 67th sdu
the 68th sdv
the 69th sdw
the 70th sdx
the 71th sdy
the 72th sdz
写成shell的形式如下
#!/bin/bash
num=1
sata=$(ls -l /dev/ |egrep "sd[a-z]*$|nvme[0-9]*$"|awk '{print $NF}')
for i in $sata;do
echo " the ${num}th hdd is $i"
let num++
done