首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CentOS 7:获得总硬盘容量和剩余硬盘容量

CentOS 7:获得总硬盘容量和剩余硬盘容量
EN

Unix & Linux用户
提问于 2022-10-06 17:41:08
回答 2查看 273关注 0票数 0

我正在制作一个简单的脚本来显示关于我的CentOS 7 PC的一些信息,类似于System Information应用程序。

我想知道是否有一个命令将显示我的虚拟磁盘的总容量和剩余容量?

目前,我知道df命令,我在此配置中使用该命令为我提供了剩余的容量:

代码语言:javascript
复制
df -Ph | grep sda1 | awk '{print $4}' | tr -d '\n'

我还知道lsblk命令,它显示了虚拟磁盘的总大小。

代码语言:javascript
复制
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   60G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   59G  0 part 
  ├─centos-root 253:0    0   37G  0 lvm  /
  ├─centos-swap 253:1    0  3.9G  0 lvm  [SWAP]
  └─centos-home 253:2    0 18.1G  0 lvm  /home
sr0              11:0    1 1024M  0 rom  

我还可以通过:lsblk命令过滤lsblk -o NAME,SIZE命令,该命令提供:

代码语言:javascript
复制
NAME             SIZE
sda               60G
├─sda1             1G
└─sda2            59G
  ├─centos-root   37G
  ├─centos-swap  3.9G
  └─centos-home 18.1G
sr0             1024M

我想知道如何过滤输出来显示60G,这是sda的容量吗?

我对awk一无所知,但我已经看到它弹出是对类似问题的许多其他回答,所以也许这是我需要进一步研究的东西。

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2022-10-06 18:42:58

使用:

代码语言:javascript
复制
lsblk -no SIZE /dev/sda | head -1

使用lsblk -n,标题将不会被打印。所以如果你跑:

代码语言:javascript
复制
lsblk -no SIZE /dev/sda

输出将如下所示:

代码语言:javascript
复制
970.5M
970.4M

第一个值970.5M/dev/sda的总磁盘容量。使用head -1,它将只获得输出的第一行,在本例中是970.5M。另一个值970.4M/dev/sda1的容量(在我的例子中)。

代码语言:javascript
复制
lsblk -no PATH,NAME,SIZE /dev/sda
#Output:
/dev/sda  sda    970.5M
/dev/sda1 └─sda1 970.4M

您可以使用上面的命令指定任何分区。例如,如果我想获得关于/dev/sda1/dev/nvme0n1p1的信息,我应该使用:

代码语言:javascript
复制
lsblk -no PATH,NAME,SIZE /dev/nvme0n1p1 /dev/sda1
#Output:
/dev/sda1      sda1      970.4M
/dev/nvme0n1p1 nvme0n1p1   260M

关于您的问题:我如何才能只显示sda3的结果,您可以使用以下内容:

代码语言:javascript
复制
lsblk -no SIZE  /dev/sda3
票数 1
EN

Unix & Linux用户

发布于 2022-10-12 18:43:29

要获得总磁盘容量,另一种方法是使用smartctl

例如:

代码语言:javascript
复制
smartctl --scan

smartctl --xall /dev/sda

# in my case a scan results in

  Smartctl open device: /dev/sda failed: DELL or MegaRaid controller, please try adding '-d megaraid,N'

# therefore for me a    smartctl -d megaraid,0 --all /dev/bus/0       shows

=== START OF INFORMATION SECTION ===
Vendor:               TOSHIBA
Product:              KPM5WRUG3T84
Revision:             B322
Compliance:           SPC-4
User Capacity:        3,840,755,982,336 bytes [3.84 TB]
Logical block size:   512 bytes
Physical block size:  4096 bytes
LU is resource provisioned, LBPRZ=1
Rotation Rate:        Solid State Device
Form Factor:          2.5 inches
Logical Unit id:      0x58ce38ee20abca2d
Serial number:        
Device type:          disk
Transport protocol:   SAS (SPL-3)
Local Time is:        Wed Oct 12 14:26:53 2022 EDT
SMART support is:     Available - device has SMART capability.
SMART support is:     Enabled
Temperature Warning:  Disabled or Not Supported
Read Cache is:        Enabled
Writeback Cache is:   Enabled

=== START OF READ SMART DATA SECTION ===
SMART Health Status: OK

Percentage used endurance indicator: 4%
Current Drive Temperature:     29 C
Drive Trip Temperature:        70 C

Manufactured in week 33 of year 2019
Elements in grown defect list: 0

smartctl -d megaraid,0 --all /dev/bus/0 | grep Capacity | awk '{print $3}'提取您可以使用的3,840,755,982,336

请检查man smartctl的选项,以了解如何使用smartctl选项,而不是管道到grep和awk来完成所有操作。

但是smartctl不会告诉您已使用或保留容量,但我认为这将是获得可靠的磁盘总容量编号的一个好方法。

另外,lshw -class disklshw -short -C disk可能会让您感兴趣:

代码语言:javascript
复制
lshw -short -C disk
H/W path         Device        Class          Description
=========================================================
/0/2/0/2.0.0     /dev/sda      disk           3840GB PERC H740P Adp    {my one OS disk}
/0/2/0/2.1.0     /dev/sdb      disk           19TB PERC H740P Adp      {the 7 other disks as RAID-5 making 19tb volume I mount as /data}
票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/720044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档