分享知識傳遞快樂
最近公司伺服器磁盤空間總是時不時的爆滿,導緻伺服器持掉,故寫此定時任務來判斷磁盤空間。在裡省略定時任務代碼,直接看Shell指令執行操作。
先來認識和了解一下磁盤管理DF的指令參數。
df指令磁盤管理
df指令用于顯示磁盤分區上的可使用的磁盤空間。預設顯示機關為KB。可以利用該指令來擷取硬碟被占用了多少空間,目前還剩下多少空間等資訊。
文法
df(選項)(參數)
選項
-a或--all:包含全部的檔案系統;
--block-size=<區塊大小>:以指定的區塊大小來顯示區塊數目;
-h或--human-readable:以可讀性較高的方式來顯示資訊;
-H或--si:與-h參數相同,但在計算時是以1000 Bytes為換算機關而非1024 Bytes;
-i或--inodes:顯示inode的資訊;
-k或--kilobytes:指定區塊大小為1024位元組;
-l或--local:僅顯示本地端的檔案系統;
-m或--megabytes:指定區塊大小為1048576位元組;
--no-sync:在取得磁盤使用資訊前,不要執行sync指令,此為預設值;
-P或--portability:使用POSIX的輸出格式;
--sync:在取得磁盤使用資訊前,先執行sync指令;
-t<檔案系統類型>或--type=<檔案系統類型>:僅顯示指定檔案系統類型的磁盤資訊;
-T或--print-type:顯示檔案系統的類型;
-x<檔案系統類型>或--exclude-type=<檔案系統類型>:不要顯示指定檔案系統類型的磁盤資訊;
--help:顯示幫助;
--version:顯示版本資訊。
常用指令
- df -hl 檢視磁盤剩餘空間
- df -h 檢視每個根路徑的分區大小
- du -sh [目錄名] 傳回該目錄的大小
- du -sm [檔案夾] 傳回該檔案夾總M數
- du -h [目錄名] 檢視指定檔案夾下的所有檔案大小(包含子檔案夾)
取得每個分區的使用百分比(不要百分号)
df -k | awk '{print int($5)}'
df -TPh|awk '{print +$6}'
[guest@localhost ~]$ df -k
檔案系統 1K-塊 已用 可用 已用% 挂載點
/dev/sda2 28296708 4508932 23787776 16% /
devtmpfs 1917956 0 1917956 0% /dev
tmpfs 1932652 0 1932652 0% /dev/shm
tmpfs 1932652 9152 1923500 1% /run
tmpfs 1932652 0 1932652 0% /sys/fs/cgroup
tmpfs 386532 12 386520 1% /run/user/42
tmpfs 386532 0 386532 0% /run/user/1000
[guest@localhost ~]$ df -k | awk '{print int($5)}'
0
16
0
0
1
0
1
0
[guest@localhost ~]
-------------------------------------------
[guest@localhost ~]$ df -TPh
檔案系統 類型 容量 已用 可用 已用% 挂載點
/dev/sda2 xfs 27G 4.4G 23G 16% /
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 9.0M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
tmpfs tmpfs 378M 12K 378M 1% /run/user/42
tmpfs tmpfs 378M 0 378M 0% /run/user/1000
[guest@localhost ~]$ df -TPh|awk '{print +$6}'
0
16
0
0
1
0
1
0
[guest@localhost ~]$ df -TPh|awk '{print $5}'
可用
23G
1.9G
1.9G
1.9G
1.9G
378M
378M
[guest@localhost ~]$
取得每個分區的使用百分比(要百分号)
df -TPh|awk '{print $6}'
[guest@localhost ~]$ df -TPh|awk '{print $6}'
已用%
16%
0%
0%
1%
0%
1%
0%
[guest@localhost ~]$
執行的結果每列的含義:
- 第一列(Filesystem),磁盤分區
- 第二列(Size),磁盤分區的大小
- 第三列(Used),已使用的空間
- 第四列(Avail),可用的空間
- 第五列(Use%),已使用的百分比
- 第六列(Mounted on),挂載點
最後,根據shell執行腳本傳回的資訊來判斷磁盤的使用空間。