1. 程式人生 > >Linux學習—磁盤配額工具quota

Linux學習—磁盤配額工具quota

use 兩個 line pad 因此 rgb title 權限 其他人

磁盤配額——Linux作為一個多用戶的操作系統,實際生活中會發生多人共同使用一個磁盤的情況,,為了保證一個磁盤的有效利用,必須對磁盤進行使用率的限制,因此磁盤配額(quota)會是一個非常有用的工具



目錄

  • quota的使用限制

  • quota的設置內容(xfs)

  • 使用quota的案例(重點)


一、quota的使用限制

EXT系列文件系統,quota僅能針對整個文件系統進行設計,無法對單一的目錄進行磁盤配額;而在xfs的文件系統中,可以使用quota對目錄進行磁盤配額,因此在進行磁盤配額前,一定要對文件系統進行檢查。

核心必須支持quota,centos7默認支持quota功能。

只對一般用戶

有效,因為root擁有全部的磁盤空間。

若啟用SELinux功能,不是所有的目錄都能設定quota,默認quota僅能對/home進行設定。


二、quota的設置內容(xfs)

分別針對用戶、群組、個別目錄(user,group,project)進行磁盤配額

限制inode和block的用量,既然quota是管理文件系統的,那麽對inode和block的限制也在情理之中

soft/hard,表示具體限制的數值大小,當磁盤容量達到soft時,系統會發出警告,要求降低至soft值以下,當達到hard時,系統會禁止繼續增加新的文件。

寬限時間(一般為7天),當某一用戶使用磁盤容量達到soft時,系統會給出一個grace time,若超過這個天數,soft值會變成hard值並禁止該用戶對磁盤增加新的文件


三、使用quota的案例

①編寫腳本/app/bin/adduser.sh,創建用戶myquota1,myquota2,myquota3,myquota4,myquota5,密碼都為centos。都位於myquotagrp這個組。這五個用戶有一個共享目錄/app/home/myquota,並且只有myquotagrp這個組的所有成員對這個共享目錄擁有全部權限,其他人沒有任何權限。

  1 #!/bin/bash
  2 groupadd myquotagrp
  3 for num in {1..5}
  4 do
  5     useradd -d /app/home/myquota$num -G myquotagrp myquota$num
  6     echo "centos" |passwd --stdin myquota$num
  7 done
  8 mkdir /app/myquota
  9 chgrp myquotagrp /app/myquota
 10 chmod 2770 /app/myquota

查看效果如下:

技術分享圖片

②對文件系統進行檢測並開啟文件系統支持

由於centos7默認是xfs文件系統並且內核支持quota功能,所以用centos7的/app目錄進行試驗,

技術分享圖片

對於xfs文件系統,由於quota功能在掛載一開始就決定了,所以mount命令的-o remount選項不能生效,只能通過修改/etc/fstab文件進行quota功能的開啟,然後卸載(umount /app)再重新掛載(mount /app), 修改內容如下:

技術分享圖片

針對quota主要有三個類別設置

·usrquota 用戶

·grpquota 群組

·prjquota 單一目錄,但是不能和grpquota同時存在

③觀察quota的管理數據

我們先來看這條指令:xfs_quota

xfs_quota -x -c "command" [掛載點]

-x 專家模式,後續才可以跟-c選項

-c 後邊跟命令

command: print 簡單列出主機內文件系統的信息

df 和原來的df命令的一樣,但是比原來的df顯示的數值更加精確

report 後邊必須跟支持quota的載入點,列出quota的項目設置

report後可以跟-u -g -p -i -b -h等選項

技術分享圖片

後面跟-u -g -p的話值顯示相對應的信息,而不是全部user/group/project列出來,-i顯示inode的使用情況,-h表示以人們便於閱讀的單位(例如KB,MB等)

state 列出支持quota功能的文件系統的quota狀態(user/group/project的開啟狀態

④設置限制值的大小

設置myquota1,myquota2,myquota3,myquota4,myquota5的soft/hard為250M/300M限制,grace time設置為14天。

xfs_quota -x -c "limit -u bsoft=250M bhard=300M myquota1" /app
xfs_quota -x -c "limit -u bsoft=250M bhard=300M myquota2" /app
xfs_quota -x -c "limit -u bsoft=250M bhard=300M myquota3" /app
xfs_quota -x -c "limit -u bsoft=250M bhard=300M myquota4" /app
xfs_quota -x -c "limit -u bsoft=250M bhard=300M myquota5" /app
xfs_quota -x -c "timer -u -b 14days" /app

設置之後的狀態:

技術分享圖片

技術分享圖片

之後切到myquota1用戶實驗限額結果:

技術分享圖片

在家目錄下創建310M的文件,顯示報錯,同時查看家目錄下新創建的文件的大小實際是300M

⑤對project的限制(/app/myquota目錄的限制)

第一步:設定目錄,項目名稱(project),項目ID

其中需要配置兩個相關的文件/etc/projects,/etc/projid(默認沒有這兩個文件,需要創建,如果文件名出錯後邊的會失敗)

echo "11:/app/myquota" > /etc/projects  #設置項目ID和目錄的對應關系
echo "myquotaproject:11" > /etc/projid  #設置項目名稱和項目ID的對應關系
xfs_quota -x -c "project -s myquotaproject"  #初始化項目名稱

技術分享圖片

第二步:對目錄設定具體限制值,將/app/myquota設置為450M/500M

xfs_quota -x -c "limit -p bsoft=450M bhard=500M myquotaproject" /app

技術分享圖片





Linux學習—磁盤配額工具quota