首頁 > 軟體

九款命令列實用工具助你監測Linux磁碟分割區及使用情況

2020-06-16 17:24:21

我們在本文中將介紹多款Linux命令列實用工具,你可以用它們在Linux下檢查磁碟分割區。

監測一個或多個儲存裝置的空間使用情況是系統管理員最重要的任務之一,這有助於確儲存儲裝置上仍有足夠的閒置空間,以便高效地執行Linux系統。

一、列印輸出Linux磁碟分割區表的命令列實用工具

1. fdisk(固定磁碟)命令

fdisk是一款功能強大、廣受歡迎的命令列工具,可用於建立和處理磁碟分割區表。

它支援GPT、MBR、Sun、SGI和BSD等格式的分割區表。你可以通過它易於使用、基於文字、選單驅動的介面來執行fdisk命令,從而顯示、建立、調整、刪除、修改、拷貝和移動儲存磁碟上的分割區。

下面這個fdisk命令將列印輸出所有已掛載塊裝置的分割區表:

  1. $ sudo fdisk -l 

fdisk – List Linux Disk Partition Table

  1. Disk /dev/sda: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors  
  2. Units: sectors of 1 * 512 = 512 bytes  
  3. Sector size (logical/physical): 512 bytes / 4096 bytes  
  4. I/O size (minimum/optimal): 4096 bytes / 4096 bytes  
  5. Disklabel type: gpt  
  6. Disk identifier: 82213CA8-50E4-4DDB-9337-85E46DA03430  
  7. Device Start End Sectors Size Type  
  8. /dev/sda1 2048 2050047 2048000 1000M Windows recovery environment  
  9. /dev/sda2 2050048 2582527 532480 260M EFI System  
  10. /dev/sda3 2582528 4630527 2048000 1000M Lenovo boot partition  
  11. /dev/sda4 4630528 4892671 262144 128M Microsoft reserved  
  12. /dev/sda5 4892672 1173295103 1168402432 557.1G Microsoft basic data  
  13. /dev/sda6 1870348288 1922777087 52428800 25G Microsoft basic data  
  14. /dev/sda7 1922777088 1953523711 30746624 14.7G Windows recovery environment  
  15. /dev/sda8 1173295104 1173297151 2048 1M BIOS boot  
  16. /dev/sda9 1173297152 1181110271 7813120 3.7G Linux swap  
  17. /dev/sda10 1181110272 1870348287 689238016 328.7G Linux filesystem  
  18. Partition table entries are not in disk order

想了解fdisk命令的更多用法和例子,請參閱《管理分割區的10個fdisk命令範例》(http://www.tecmint.com/fdisk-commands-to-manage-linux-disk-partitions/)。

2. sfdisk(用於指令碼環境的fdisk)命令

sfdisk用起來比較像fdisk,它可列印輸出或者處理儲存磁碟分割區表。然而,sfdisk提供了fdisk所沒有的額外特性。你可以像fdisk那樣來使用它,它還支援GPT、MBR、Sun和SGI等格式的分割區表。

兩者之間的一個區別就是,sfdisk並不像fdisk那樣為SGI和SUN磁碟標籤建立標準的系統分割區。

  1. $ sudo sfdisk -l 

sfdisk – Check Linux Disk Partition Table

  1. Disk /dev/sda: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors  
  2. Units: sectors of 1 * 512 = 512 bytes  
  3. Sector size (logical/physical): 512 bytes / 4096 bytes  
  4. I/O size (minimum/optimal): 4096 bytes / 4096 bytes
    Disklabel type: gpt  
  5. Disk identifier: 82213CA8-50E4-4DDB-9337-85E46DA03430  
  6. Device Start End Sectors Size Type  
  7. /dev/sda1 2048 2050047 2048000 1000M Windows recovery environment  
  8. /dev/sda2 2050048 2582527 532480 260M EFI System  
  9. /dev/sda3 2582528 4630527 2048000 1000M Lenovo boot partition  
  10. /dev/sda4 4630528 4892671 262144 128M Microsoft reserved  
  11. /dev/sda5 4892672 1173295103 1168402432 557.1G Microsoft basic data  
  12. /dev/sda6 1870348288 1922777087 52428800 25G Microsoft basic data  
  13. /dev/sda7 1922777088 1953523711 30746624 14.7G Windows recovery environment  
  14. /dev/sda8 1173295104 1173297151 2048 1M BIOS boot  
  15. /dev/sda9 1173297152 1181110271 7813120 3.7G Linux swap  
  16. /dev/sda10 1181110272 1870348287 689238016 328.7G Linux filesystem  
  17. Partition table entries are not in disk order

想了解更多用法,請參閱sfdisk的參考手冊頁。

3. cfdisk(curses fdisk)命令

cfdisk是個簡單程式,可用於列印輸出和管理磁碟分割區。它借助易於使用的介面提供了基本的分割區功能。你可以使用類似功能比較強大的命令fdisk和sfdisk讓使用者可以檢視、新增、刪除和修改硬碟分割區。

使用向右箭頭和向左箭頭來移動選單標籤上的高亮部分。

  1. $ sudo cfdisk 

cfdisk – Print Linux Disk Partition Table

  1. Disk: /dev/sda  
  2. Size: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors  
  3. Label: gpt, identifier: 82213CA8-50E4-4DDB-9337-85E46DA03430  
  4. Device Start End Sectors Size Type  
  5. >> Free space 2048 2048 0 0B  
  6. /dev/sda1 2048 2050047 2048000 1000M Windows recovery environm  
  7. /dev/sda2 2050048 2582527 532480 260M EFI System  
  8. /dev/sda3 2582528 4630527 2048000 1000M Lenovo boot partition  
  9. /dev/sda4 4630528 4892671 262144 128M Microsoft reserved  
  10. /dev/sda5 4892672 1173295103 1168402432 557.1G Microsoft basic data  
  11. /dev/sda6 1870348288 1922777087 52428800 25G Microsoft basic data  
  12. /dev/sda7 1922777088 1953523711 30746624 14.7G Windows recovery environm  
  13. /dev/sda8 1173295104 1173297151 2048 1M BIOS boot  
  14. /dev/sda9 1173297152 1181110271 7813120 3.7G Linux swap  
  15. /dev/sda10 1181110272 1870348287 689238016 328.7G Linux filesystem  
  16. ┌────────────────────────────────────────────────────────────────────────────┐  
  17. │ Filesystem: ntfs │  
  18. │Filesystem label: WINRE_DRV │  
  19. └────────────────────────────────────────────────────────────────────────────┘  
  20. [ New ] [ Quit ] [ Help ] [ Sort ] [ Write ] [ Dump ] 

4. parted命令

parted也是一種知名的命令列工具,可用於顯示和處理磁碟分割區。它識別多種分割區表格式,包括MBR和GPT。

parted可用於為新的分割區建立空間,重新整理磁碟使用情況,將資料拷貝到新的硬碟,等等。

  1. $ sudo parted -l 

parted – A Partition Manipulation Tool

  1. Model: ATA ST1000LM024 HN-M (scsi)  
  2. Disk /dev/sda: 1000GB  
  3. Sector size (logical/physical): 512B/4096B  
  4. Partition Table: gpt  
  5. Disk Flags:  
  6. Number Start End Size File system Name Flags  
  7. 1 1049kB 1050MB 1049MB ntfs Basic data partition hidden, diag  
  8. 2 1050MB 1322MB 273MB fat32 EFI system partition boot, hidden, esp  
  9. 3 1322MB 2371MB 1049MB fat32 Basic data partition hidden  
  10. 4 2371MB 2505MB 134MB Microsoft reserved partition msftres  
  11. 5 2505MB 601GB 598GB ntfs Basic data partition msftdata  
  12. 8 601GB 601GB 1049kB bios_grub
    9 601GB 605GB 4000MB linux-swap(v1)  
  13. 10 605GB 958GB 353GB ext4  
  14. 6 958GB 984GB 26.8GB ntfs Basic data partition msftdata  
  15. 7 984GB 1000GB 15.7GB ntfs Basic data partition hidden, diag 

想了解更多用法,請參閱《管理Linux磁碟分割區的8個Linux parted命令》(http://www.tecmint.com/parted-command-to-create-resize-rescue-linux-disk-partitions/)。

5. lsblk(列表塊)命令

lsblk列印輸出的資訊包括:關於所有可用或特定已掛載塊裝置(不包括記憶體磁碟)的名稱、型別和掛載點。

  1. $ lsblk 

lsblk – List Linux Block Devices

  1. NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT  
  2. sda 8:0 0 931.5G 0 disk  
  3. ├─sda1 8:1 0 1000M 0 part  
  4. ├─sda2 8:2 0 260M 0 part  
  5. ├─sda3 8:3 0 1000M 0 part  
  6. ├─sda4 8:4 0 128M 0 part  
  7. ├─sda5 8:5 0 557.1G 0 part  
  8. ├─sda6 8:6 0 25G 0 part  
  9. ├─sda7 8:7 0 14.7G 0 part  
  10. ├─sda8 8:8 0 1M 0 part  
  11. ├─sda9 8:9 0 3.7G 0 part [SWAP]  
  12. └─sda10 8:10 0 328.7G 0 part /  
  13. sr0 11:0 1 1024M 0 rom 

6. blkid(塊ID)命令

blkid這個實用工具可找到或者顯示塊裝置的屬性(NAME=值對),比如裝置或分割區名稱、標簽、檔案系統型別及其他。

  1. $ blkid 

blkid – Print Block Device Attributes

  1. /dev/sda1: LABEL="WINRE_DRV" UUID="D4A45AAAA45A8EBC" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="dcc4de2d-8fc4-490f-85e0-50c2e18cc33d" 
  2.  
  3. /dev/sda2: LABEL="SYSTEM_DRV" UUID="185C-DA5B" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="b13c479a-d63b-4fec-9aee-f926fe7b0b16" 
  4.  
  5. /dev/sda3: LABEL="LRS_ESP" UUID="0E60-2E0E" TYPE="vfat" PARTLABEL="Basic data partition" PARTUUID="d464feab-0791-4866-a36b-90dbe6d6a437" 
  6.  
  7. /dev/sda5: LABEL="Windows8_OS" UUID="18D0632AD0630CF6" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="8a66bd5b-8624-4fdb-9ad8-18d8cd356160" 
  8.  
  9. /dev/sda6: LABEL="LENOVO" UUID="9286FFD986FFBC33" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="92fbbea9-6bcd-4ae5-a322-c96a07a81013" 
  10.  
  11. /dev/sda7: LABEL="PBR_DRV" UUID="ECD06683D066543C" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="0e2878a2-377c-4b35-9454-f1f2c6398405" 
  12.  
  13. /dev/sda9: UUID="e040de62-c837-453e-88ee-bd9000387083" TYPE="swap" PARTUUID="f5eef371-a152-4208-a62f-0fb287f9acdd" 
  14.  
  15. /dev/sda10: UUID="bb29dda3-bdaa-4b39-86cf-4a6dc9634a1b" TYPE="ext4" PARTUUID="26b60905-1c39-4fd4-bdce-95c517c781fa" 

7. hwinfo(硬體資訊)命令

hwinfo通常列印輸出關於系統硬體的詳細資訊。但是你可以執行如下hwinfo命令,使用-- <HARDWARE_ITEM>這個選項,列出指定型別的所有硬體項(這裡是磁碟等塊裝置及其分割區)。

如果只想獲得摘要資訊,請使用-- short選項,如下面這個命令所示:

  1. $ hwinfo --short --block 

hwinfo – Print Linux Hardware Information

  1. disk:  
  2. /dev/sda ST1000LM024 HN-M  
  3. /dev/ram0 Disk  
  4. /dev/ram1 Disk  
  5. /dev/ram2 Disk  
  6. /dev/ram3 Disk  
  7. /dev/ram4 Disk  
  8. /dev/ram5 Disk  
  9. /dev/ram6 Disk  
  10. /dev/ram7 Disk  
  11. /dev/ram8 Disk  
  12. /dev/ram9 Disk  
  13. /dev/ram10 Disk  
  14. /dev/ram11 Disk  
  15. /dev/ram12 Disk  
  16. /dev/ram13 Disk  
  17. /dev/ram14 Disk  
  18. /dev/ram15 Disk  
  19.  
  20. partition:  
  21. /dev/sda1 Partition  
  22. /dev/sda2 Partition  
  23. /dev/sda3 Partition  
  24. /dev/sda4 Partition  
  25. /dev/sda5 Partition  
  26. /dev/sda6 Partition  
  27. /dev/sda7 Partition  
  28. /dev/sda8 Partition  
  29. /dev/sda9 Partition  
  30. /dev/sda10 Partition 
  31.  
  32. cdrom:  
  33. /dev/sr0 PLDS DVD-RW DA8A5SH 

確保hwinfo工具已安裝在你的系統上,那樣才能獲得上述結果。

二、Linux下監測磁碟空間使用情況的命令列實用工具

下面介紹了用於監測Linux磁碟空間使用情況的幾個命令列實用工具。

8. df(磁碟檔案系統)命令

df在終端上列印輸出檔案系統磁碟空間使用情況方面的摘要資訊。在下面這個命令中,-hT引數選項符可報告檔案大小、已用空間、可用空間和已用空間百分比,採用了人類可讀的格式。

  1. $ df -hT 

df – Show Linux Disk Space Usage

  1. Filesystem Type Size Used Avail Use% Mounted on  
  2. udev devtmpfs 3.9G 0 3.9G 0% /dev  
  3. tmpfs tmpfs 788M 9.6M 779M 2% /run  
  4. /dev/sda10 ext4 324G 132G 176G 43% /  
  5. tmpfs tmpfs 3.9G 86M 3.8G 3% /dev/shm  
  6. tmpfs tmpfs 5.0M 4.0K 5.0M 1% /run/lock  
  7. tmpfs tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup  
  8. cgmfs tmpfs 100K 0 100K 0% /run/cgmanager/fs  
  9. tmpfs tmpfs 788M 32K 788M 1% /run/user/1000 

9. pydf(Python df)命令

pydf是一款傑出的Python命令列實用工具,也是Linux下可替代df的優秀工具。它使用不同顏色來高亮顯示具有特定屬性的磁碟分割區。

  1. $ pydf 

pydf – Show Colourised Linux Disk Space Usage

  1. Filesystem Size Used Avail Use% Mounted on  
  2. /dev/sda10 323G 132G 175G 40.7 [######################................................] / 

確保pydf實用工具已安裝在系統上;要是未安裝,請參閱《安裝pydf工具來監測Linux磁碟使用情況》(http://www.tecmint.com/pyd-command-to-check-disk-usage/)。

三、如果磁碟/分割區在Linux下快用完空間,該怎麼辦?

一旦你認識到你的任何儲存磁碟快用完空間或者已滿,應該:

首先,使用任何一款Linux系統備份工具,對系統上的所有重要檔案作一個備份。

下一步,使用du命令,檢查哪些檔案或目錄在一個或多個磁碟上佔用的空間量最大。

然後,借助rm命令,從一個或多個儲存磁碟上刪除不再重要或你在將來不會使用的任何檔案,也可以使用fslint工具,找到並刪除Linux下不需要的檔案。

如果你的根分割區快滿了,可以使用LVM調整根分割區大小,它用起來應該很簡單。

注意:萬一你刪除了任何重要檔案,可以恢復在Linux下刪除的檔案。

我們在本文中介紹了多款有用的命令列實用工具,可用來顯示儲存磁碟分割區表,並監測磁碟使用情況。

我們有沒有落下具有同樣用途的任何重要的命令列範例工具?歡迎留言交流!

原文標題:9 Tools to Monitor Linux Disk Partitions and Usage in Linux,作者:Aaron Kili

本文永久更新連結地址http://www.linuxidc.com/Linux/2017-01/139103.htm


IT145.com E-mail:sddin#qq.com