Linux工具|运维工具lsblk使用小妙招

2023-11-08 15:54:10 浏览数 (2)

1 背景

运维工程师(Operations)是负责维护并确保整个服务的高可用性,同时不断优化系统架构提升部署效率、优化资源利用率提高整体的ROI的专业人员。他们的基本职责是负责服务的稳定性,确保服务可以7*24H不间断地为用户提供服务。

作为一名运维工程师,操作系统知识 怎么可以落下,我们需要深入理解Linux系统,包括其文件系统、进程管理、用户和权限管理等。今天就先讲讲「设备和自动化」中的查看块设备和文件系统。说到了这里,大家可能又要跃跃欲试了,毕竟,这些基础的知识也是需要我们下笔如有神。从标题中,你已经猜测出来我此时说的这个小工具叫什么名字。

2 环境检查

首先需要了解下什么是块设备(block devices),块设备是指设备的文件。这些设备可以是HDD、SDD、RAM磁盘等。块设备文件可以在目录下找到 /dev。有了这个信息之后,在Linux服务器中,没有操作界面,我们是如何查看这些信息呢,lsblk就应运而生了。

lsblk指令主要用于展示块设备(block devices)的信息,包括磁盘、分区和挂载点等。

lsblk命令 用于列出所有可用块设备的信息,而且还能显示他们之间的依赖关系,但是它不会列出RAM盘的信息。块设备有硬盘,闪存盘,cd-ROM等等。lsblk命令包含在util-linux-ng包中,现在该包改名为util-linux。这个包带了几个其它工具,如dmesg。

无论做什么工作,我们需要先做的就是熟悉我们的环境。

首先,执行命令查看当前的操作系统。

代码语言:javascript复制
[root@xxx ~]# uname -a
Linux xxx 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

其次,我们需要检查下我们的机器是否有这个命令。

代码语言:javascript复制
root@xxx ~]# lsblk -V
lsblk,来自 util-linux 2.23.2

没有看错,当你执行完命令之后,你发现了什么?util-linux,所以这个是属于Linux的自带工具。

如果没有安装或者卸载也没有关系,要安装lsblk,请在此处下载util-linux包。Fedora用户可以通过命令sudo yum install util-linux-ng来安装该包。

3 帮助简介

在Linux环境中,有很多约定俗成的命令,可以帮助我们很快的投入到工作中,例如--help 。下面是我在我的机器上面执行了帮助命令,现在看着是不是一目了然?

代码语言:javascript复制
[root@xxx ~]# lsblk --help

用法:
 lsblk [选项] [<设备> ...]

选项:
 -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  输出版本信息并退出

可用列(用于 --output):
        NAME  设备名
       KNAME  internal kernel device name
     MAJ:MIN  主:次 设备号
      FSTYPE  文件系统类型
  MOUNTPOINT  where the device is mounted
       LABEL  filesystem LABEL
        UUID  filesystem UUID
   PARTLABEL  分区 LABEL
    PARTUUID  分区 UUID
          RA  read-ahead of the device
          RO  只读设备
          RM  removable device
       MODEL  device identifier
      SERIAL  disk serial number
        SIZE  size of the device
       STATE  设备的状态
       OWNER  user name
       GROUP  group name
        MODE  device node permissions
   ALIGNMENT  alignment offset
      MIN-IO  minimum I/O size
      OPT-IO  optimal I/O size
     PHY-SEC  物理扇区大小
     LOG-SEC  逻辑扇区大小
        ROTA  rotational device
       SCHED  I/O scheduler name
     RQ-SIZE  request queue size
        TYPE  device type
    DISC-ALN  discard alignment offset
   DISC-GRAN  discard granularity
    DISC-MAX  discard max bytes
   DISC-ZERO  忽略零数据
       WSAME  write same max bytes
         WWN  unique storage identifier
        RAND  adds randomness
      PKNAME  internal parent kernel device name
        HCTL  Host:Channel:Target:Lun for SCSI
        TRAN  device transport type
         REV  device revision
      VENDOR  device vendor

更多信息请参阅 lsblk(8)。

4 实践先行

lsblk

代码语言:javascript复制
[root@xxx ~]# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0   200G  0 disk 
├─sda1   8:1    0   300M  0 part /boot
├─sda2   8:2    0   7.9G  0 part [SWAP]
└─sda3   8:3    0 191.9G  0 part /
sr0     11:0    1  1024M  0 rom  
[root@xxx ~]# 

对照着上面的说明文档,是不是一目了然?下面我就以ubuntu来做一个简单的讲解。

01.列出所有块设备

【命令】lsblk -a

【说明】使用选项-a显示所有设备,包括空设备,执行命令

02.要更改树状格式的默认lsblk输出

【命令】lsblk -l

【说明】更改树状格式的默认lsblk输出,l其实是List的形式,使用列表格式的输出

03.显示特定设备

【命令】lsblk 目录设备

【说明】在设备名称后面使用lsblk来显示有关特定设备的信息。

04.按需选择

【命令】lsblk -o 选项

【说明】可以使用-o选项显示特定列的输出,下面来展示下名称和大小

05.显示权限

【命令】lsblk -m

【说明】可以使用-o选项显示特定列的输出,下面来展示下名称和大小

06.输出有关 SCSI 设备的信息

【命令】lsblk -S

【说明】可以使用-S选项输出有关 SCSI 设备的信息

07.显示每个设备的区域模型

【命令】lsblk -z

【说明】可以使用-z选项显示每个设备的区域模型,根据系统来,有些系统没有这个参数

5 写在最后

作为一名运维工程师需要了解掌握很多技能,比如说操作系统、开源组件、监控相关、编程知识、网络知识、数据库知识、自动化技能和日志分析能力。当然也不能缺少一些软技能,例如沟通、抗压等,要和同事、领导以及客户保持良好的沟通,理解需求,提供有效的解决方案,需要应对高强度的工作压力,保持冷静,快速解决问题。


我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

0 人点赞