8.12 df:報告文件系統磁盤空間的使用狀況
-a 顯示全部文件系統
-h 以容易理解的格式顯示磁盤的使用狀況端
-i 顯示文件系統的inode信息迷
-t 顯示指定類型的磁盤
-T 列出文件系統的類型
Filesystem 第1列是文件系統對應的設備文件的路徑名(通常是硬盤上的分區)
1K-blocks 第2列是分區的總大小(單位爲block)
Used 第3列是分區的使用大小
Available 第4列是分區的可用大小
Use% 第5列是使用百分比
Mounted on 第6列是文件系統的掛載點
第3列和第4列之和不等於第2列。這是由於默認的每一個分區都預留了少許空間供root使用。即便遇到空間已滿的狀況,root仍能登陸和擁有解決問題所需的工做空間。清單中的Use%列表示普通用戶空間使用的百分比,即便這一數字達到了100%,分區仍然留有root使用的空間。
參數-i 顯示inode的使用狀況
[root@cs6 data1]# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/mapper/vg_cs6-lv_root
1738080 23547 1714533 2% /
tmpfs 238145 1 238144 1% /dev/shm
/dev/sda1 128016 38 127978 1% /boot
參數-t顯示指定類型的磁盤。node
[root@cs6 data1]# df -t ext4 #<== -t 後面接文件系統類型,如ext2/ext3/ext4。
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/vg_cs6-lv_root
27228028 1689448 24148808 7% /
/dev/sda1 487652 28020 434032 7% /boot
參數-T列出了文件系統的類型。緩存
[root@cs6 data1]# df -T
Filesystem Type 1K-blocks Used Available Use% Mounted on
/dev/mapper/vg_cs6-lv_root
ext4 27228028 1689448 24148808 7% /
tmpfs tmpfs 952580 0 952580 0% /dev/shm
/dev/sda1 ext4 487652 28020 434032 7% /boot
向磁盤寫入數據提示以下錯誤:No space left on device,而後經過df-h查看磁盤空間,結果發現磁盤沒滿,那麼請問這多是什麼緣由?app
多是inode數量被耗盡了。用df-i可查看inode的使用狀況。
致使上述inode滿的緣由之一有以下幾種狀況:
Linux 系統目錄/var/spool/clientmquene(CentOS5.8默認安裝sendmail軟件的郵件的臨時隊列目錄)或/var/spool/postfix/maildrop/(CentOS6.6默認安裝postfix軟件的郵件的臨時隊列目錄)很容易被大量小文件佔滿,致使出現「No space left on device」的錯誤。
緣由分析:
系統中crond定時任務執行的程序有輸出內容,輸出內容會以郵件形式發給設置定時任務的用戶,而若Sendmail/Postfix服務沒有啓動,則會產生相似下面代碼所示的這些文件,時間長了就會把系統的inode數量耗盡,可是block的數量仍有剩餘,因此使用df -h 查看空間還有剩餘。
解決方法:
小文件太多,直接用rm -f刪除會失敗,顯示參數過長的錯誤信息,這時須要用到
ls|xargs rm -f命令進行刪除。若想要根治,可採用以下方法。
由於主要是由定時任務引發的,因此可在定時任務後加上>/dev/null 2>&1來解決
8.13 mkswap:建立交換分區
mkswap命令是在Linux系統裏建立交換分區的工具,當系統沒有交換分區或交換分區不夠用時,能夠新建一個交換分區。
-c 創建交換分區以前,首先檢查磁盤是否有損壞的區塊
-f 強制執行操做
建立交換分區。
能夠將一塊磁盤分區後再針對某一個分區建立交換分區,也能夠將整塊磁盤建立爲交換分區,但須要-f參數。
[root@cs6 data1]# mkswap /dev/sdb #<==默認是不能用整塊磁盤傳交換分區的。
/dev/sdb: 設備或資源忙
mkswap -f /dev/sdb1 #<==使用-f參數強制使用整塊磁盤作交換分區
8.14 swapon:激活交換分區
使用mkswap命令建立交換分區後,分區並無生效,還須要使用swapon命令使之生效。
-s 顯示全部交換分區的信息
[root@cs6 ~]# mkswap -f /dev/sdb1
Setting up swapspace version 1, size = 417652 KiB
no label, UUID=5ce3d626-5794-4990-9980-489d49e4d930
[root@cs6 ~]# swapon /dev/sdb1
[root@cs6 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_cs6-lv_root
26G 1.7G 24G 7% /
tmpfs 931M 0 931M 0% /dev/shm
/dev/sda1 477M 28M 424M 7% /boot
[root@cs6 ~]# free -m
total used free shared buffers cached
Mem: 1989 176 1813 0 5 40
-/+ buffers/cache: 129 1860
Swap: 3479 0 3479
[root@cs6 ~]# swapoff /dev/sdb1
[root@cs6 ~]# free -m
total used free shared buffers cached
Mem: 1989 176 1813 0 5 40
-/+ buffers/cache: 129 1860
Swap: 3071 0 3071
8.15 swapoff:關閉交換分區
若是須要回收磁盤資源,則可使用swapoff關閉交換分區釋放磁盤空間。
-a 關閉全部交換分區
[root@cs6 ~]# swapoff -a
[root@cs6 ~]# free -m
total used free shared buffers cached
Mem: 1989 174 1815 0 6 41
-/+ buffers/cache: 127 1862
Swap: 0 0 0
8.16 sync :刷新文件系統緩衝區
sync命令會將內存緩衝區內的數據強制刷新到磁盤。
Linux內核爲了達到最佳的磁盤操做效率,默認會先在內存中將須要寫入到磁盤的數據緩存起來,而後等待合適的時機將它們真正寫入到磁盤中,這在絕大多數狀況下都是沒有任何問題的,並且還提升了系統的效率,可是若是系統出現宕機、掉電等狀況,就可能會致使有些文件內容沒能保存下來。固然,在Linux系統正常關機或者重啓時,會將緩衝區中的內容自動同步到磁盤中。咱們也能夠手工執行sync命令,將內存中的文件緩衝內容強制寫到磁盤中。
可是一般狀況下沒有必要執行這個命令,一是Linux內核會盡快讓內存中的數據自動同步到磁盤上去,二是咱們也沒法預計何時會宕機、掉電。
[root@cs6 ~]# sync
[root@cs6 ~]# sync