我正在制作一个简单的脚本来显示关于我的CentOS 7 PC的一些信息,类似于System Information应用程序。
我想知道是否有一个命令将显示我的虚拟磁盘的总容量和剩余容量?
目前,我知道df命令,我在此配置中使用该命令为我提供了剩余的容量:
df -Ph | grep sda1 | awk '{print $4}' | tr -d '\n'我还知道lsblk命令,它显示了虚拟磁盘的总大小。
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命令,该命令提供:
NAME SIZE
sda 60G
├─sda1 1G
└─sda2 59G
├─centos-root 37G
├─centos-swap 3.9G
└─centos-home 18.1G
sr0 1024M我想知道如何过滤输出来显示60G,这是sda的容量吗?
我对awk一无所知,但我已经看到它弹出是对类似问题的许多其他回答,所以也许这是我需要进一步研究的东西。
发布于 2022-10-06 18:42:58
使用:
lsblk -no SIZE /dev/sda | head -1使用lsblk -n,标题将不会被打印。所以如果你跑:
lsblk -no SIZE /dev/sda输出将如下所示:
970.5M
970.4M第一个值970.5M是/dev/sda的总磁盘容量。使用head -1,它将只获得输出的第一行,在本例中是970.5M。另一个值970.4M是/dev/sda1的容量(在我的例子中)。
lsblk -no PATH,NAME,SIZE /dev/sda
#Output:
/dev/sda sda 970.5M
/dev/sda1 └─sda1 970.4M您可以使用上面的命令指定任何分区。例如,如果我想获得关于/dev/sda1和/dev/nvme0n1p1的信息,我应该使用:
lsblk -no PATH,NAME,SIZE /dev/nvme0n1p1 /dev/sda1
#Output:
/dev/sda1 sda1 970.4M
/dev/nvme0n1p1 nvme0n1p1 260M关于您的问题:我如何才能只显示sda3的结果,您可以使用以下内容:
lsblk -no SIZE /dev/sda3发布于 2022-10-12 18:43:29
要获得总磁盘容量,另一种方法是使用smartctl。
例如:
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: 0smartctl -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 disk和lshw -short -C disk可能会让您感兴趣:
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}https://unix.stackexchange.com/questions/720044
复制相似问题