简介
在Linux系统下面,块设备使用很常见,尤其是一些传统商用数据库,例如Oracle,DB2就经常使用块设备,lsblk命令可以非常方便的让你获取所有的块设备信息。
lsblk安装
如果你的Linux系统上没有lsblk命令,没关系,安装很容易
yum install util-linux
lsblk常用参数详解
[root@mysql ~]# lsblk --help
选项:
-a, --all 打印所有设备
-b, --bytes 以字节为单位而非易读的格式来打印 SIZE
-d, --nodeps 不打印从属设备(slave)或占位设备(holder)
-D, --discard 打印时丢弃能力
-e, --exclude <列表> 根据主设备号排除设备(默认:内存盘)
-I, --include <列表> 只显示有指定主设备号的设备
-f, --fs 输出文件系统信息
-h, --help 使用信息(此信息)
-i, --ascii 只使用 ascii 字符
-m, --perms 输出权限信息
-l, --list 使用列表格式的输出
-n, --noheadings 不打印标题
-o, --output <列表> 输出列
-p, --paths 打印完整设备路径
-P, --pairs 使用 key=“value” 输出格式
-r, --raw 使用原生输出格式
-s, --inverse 反向依赖
-t, --topology 输出拓扑信息
-S, --scsi 输出有关 SCSI 设备的信息
-h, --help 显示此帮助并退出
-V, --version 输出版本信息并退出
lsblk用法举例
获取块设备,以树形展示
[mysql@mysql ~]$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
|-sda1 8:1 0 1G 0 part /boot
`-sda2 8:2 0 99G 0 part
|-centos-root 253:0 0 87G 0 lvm /
|-centos-swap 253:1 0 2G 0 lvm [SWAP]
`-centos-home 253:2 0 10G 0 lvm /home
sr0 11:0 1 4.3G 0 rom
在这里解释一下重要的列名含义,更多信息可以用lsblk --help自己查看
1.MAJ:MIN:本栏显示主要和次要设备号
2.RM:显示可移动设备。0表示非移动设备,1表示可移动设备
3.RO:是否只读,0表示非只读,1表示只读
获取块设备全路径和权限
[mysql@mysql ~]$ lsblk -mp
NAME SIZE OWNER GROUP MODE
/dev/sda 100G root disk brw-rw----
|-/dev/sda1 1G root disk brw-rw----
`-/dev/sda2 99G root disk brw-rw----
|-/dev/mapper/centos-root 87G root disk brw-rw----
|-/dev/mapper/centos-swap 2G root disk brw-rw----
`-/dev/mapper/centos-home 10G root disk brw-rw----
/dev/sr0 4.3G root cdrom brw-rw----
从上面结果可以清楚看到各个块设备所属用户和组,以及权限
获取块设备的IO调度算法
[mysql@mysql ~]$ lsblk -t
NAME ALIGNMENT MIN-IO OPT-IO PHY-SEC LOG-SEC ROTA SCHED RQ-SIZE RA WSAME
sda 0 512 0 512 512 1 deadline 128 4096 32M
|-sda1 0 512 0 512 512 1 deadline 128 4096 32M
`-sda2 0 512 0 512 512 1 deadline 128 4096 32M
|-centos-root 0 512 0 512 512 1 128 4096 32M
|-centos-swap 0 512 0 512 512 1 128 4096 32M
`-centos-home 0 512 0 512 512 1 128 4096 32M
sr0 0 2048 0 2048 2048 1 deadline 128 128 0B
在这里我就不再一一列举用法了,感兴趣的朋友可以自己再仔细研究,有新的用法可以留言评论。