linux脚本对磁盘分区,如何检查磁盘上的分区以便在Linux中的脚本中使用?

我正在为Bash for Linux系统编写脚本.如何以健壮的方式检查磁盘的分区?

我可以使用grep,awk或sed来解析fdisk,sfdisk等的输出,但这似乎不是一门精确的科学.

我还可以检查/ dev中是否存在分区,但是分区也可能存在并且尚未被探测(作为示例,通过partprobe).

你会推荐什么?

解决方法:

我想我找到了一个可靠的方法.在阅读手册页时,我偶然学到了partprobe的更多功能:

-d Don’t update the kernel.

-s Show a summary of devices and their partitions.

一起使用,我可以在不更新内核的情况下扫描磁盘以获取分区,并获得可靠的解析输出.它仍在解析文本,但至少输出不像fdisk或sfdisk那样“面向人”.这也是从磁盘读取的信息,并不依赖于内核对此磁盘的分区状态是最新的.

看一看:

在没有分区表的磁盘上:

# partprobe -d -s /dev/sdb

(no output)

在具有分区表但没有分区的磁盘上:

# partprobe -d -s /dev/sdb

/dev/sdb: msdos partitions

在具有分区表和一个分区的磁盘上:

# partprobe -d -s /dev/sdb

/dev/sdb: msdos partitions 1

在具有分区表和多个分区的磁盘上:

# partprobe -d -s /dev/sda

/dev/sda: msdos partitions 1 2 3 4 <5 6 7>

重要的是要注意,无论现有分区表或分区如何,每个退出状态都为0.另外,我还注意到这些选项不能组合在一起(partprobe -d -s / dev / sdb有效,而partprobe -ds / dev / sdb则没有).

标签:bash,linux,disk-partitioning

来源: https://codeday.me/bug/20190528/1172298.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值