Linux磁盤配額實驗


1.實現磁盤限額的條件
*需要Linux內核支持
*安裝quota軟件包
2.Linux磁盤限額的特點
作用范圍:針對指定 文件系統(分區)
限制對象普通用戶帳號、組帳號
限制類型:磁盤容量(默認單位為KB)、文件數量
限制方法:軟限制、硬限制
3.quota對文件系統的限制主要分為:容量限制或文件數量限制
限制inode用量:就是用戶可以新建的文件數量
限制block用量:就是用戶可以使用的磁盤容量,比較常見的限制方式

-------------------------------------------------------------------------------

注:

磁盤配額的記錄文件保存在開啟磁盤配額分區的根目錄下面,它們是aquota.user和aquota.group;
磁盤配額只對一般身份用戶有效,對root權限用戶無效

最低限制(軟限制,soft):最低限制容量(可以被超過,但會出現警告,超過的部分會保存到寬限時間到期);
最高限制(硬限制,hard): 不能被超越的限制;
寬限時間:當用戶使用的空間超過了最低限制但還沒到達最高限制時,在這個寬限時間到期前必須將超額的數據降低到最低限制以下(默認為7天),當寬限時間到期,系統將自動清除超出的數據;
===========================================

實驗環境:

Linux RedHat 6.5

設置SELINUX=disabled


 

前面配置部分

1、新建用戶,設置密碼

useradd losnau
echo "losnau" |passwd losnau --stdin

2、創建一個邏輯分區,並且格式化ext4文件系統

fdisk /dev/sdb
mkfs.ext4 /dev/sdb1

4、創建掛在目錄 ,並且修改權限777,可以讓其他用戶擁有所有權限

mkdir /public
chmod 777 /public

5、創建文件掛在點

方法1) 編輯 /etc/fstab

echo "/dev/sdb1               /public                 ext4    defaults,usrquota,grpquota      0 0
" >> /etc/fstab
#第一個字段為被掛載的分區,第二個字段為掛載的目錄,第三個字段是被掛載的分區的文件系統類型,后面的幾個字段是支持quota的參數。各字段用空格分隔
mount -a #讀取/etc/fstab,重新掛在生效,或者重啟也行

方法2)自己手動掛載

mount -o remount,usrquota,grpquota /public #立即生效

 

 mount | grep /dev/sdb1.
 #只要括號里面顯示"usrquota,grpquota",說明可以使用磁盤配額了
 /dev/sdb1 on /sdb1 type ext4 (rw,usrquota,grpquota)
 #或者
 ls  /public
 #看到目錄下有lost+found這個目錄也算是掛在成功了

6、使用quotacheck命令生成配置磁盤配置的數據庫文件

#若selinux開啟的話會提示權限不夠,通過setenforce 0臨時關掉selinux就可以了

#創建磁盤配額配置文件,命令參數解釋如下:
    #-v 顯示掃描過程;
    #-u 針對掃描情況與目錄的使用情況建立aquota.user;
    #-g 針對用戶掃描文件與使用情況建立aquota.group;

quotacheck -vug /public
ls /public
#quotacheck執行成功可以看到/public/下面多了兩個文件。

 

 

7、配置losnau用戶使用/dev/sdb1分區的限額

 

edquota -u losnau
#/dev/sdb1    0     10   20    0     3   
#:wq修改保存退出

解釋上面的操作:
    #輸入上面的命令后,會進入一個vi編輯界面
    #對其中各字段解釋如下:
    #Filesystem下顯示實現磁盤配額的分區;
    #blocks下為當前已經使用的大小,不用修改;
    #soft為軟限制,超出后會給出警告,超出的部分默認會保存7天;
    #hard為硬限制,不可超越的限制(軟硬限制默認單位都是KB);
    #后面的兩個相同的soft、hard分別表示分區中這個用戶可以創建的文件數目軟硬限制;
    #本例中設置,qingsword可以使用/dev/sdb1分區的軟限制大小10KB,硬限制20KB,可創建的文件個數軟限制是3個,硬限制5個;
    Disk quotas for user qingsword (uid 500):
    Filesystem blocks soft hard inodes soft hard

8、開啟這個分區的磁盤配額

quotaon /public #掛在點看你前面做了什么操作,可自行修改

注:若要配置其他用戶,請參考第7步


 

測試部分

=======================測試磁盤使用額度=========================

#切換到losnau用戶
 su losnau
 #進入/dev/sdb1分區
 cd /public

 #使用dd命令進行文件寫入測試,
 # if=/dev/zero 表示從"/dev/zero"文件輸出,of=/public/testfile1 表示輸入到"/public/testfile1"文件中,也就是,從/dev/zero這個文件中讀取垃圾數據寫入/public/testfile1這個文件中;
 # bs=1K 表示一次讀取寫入的大小是1KB,count=12 表示讀取12次;
 #所以理論上最后寫入/sdb1/testfile1的數據應該是12KB

 dd if=/dev/zero of=/public/testfile1 bs=1K count=12
 #因為針對qingsword用戶在這個分區的軟限制設置是10KB,所以這里給出了警告信息
 dd if=/dev/zero of=/public/testfile3 bs=1K count=12
 #出現了一個警告,並且下方顯示只有8K的數據被復制,這是因為我們設置的硬限制是20KB
#第一個文件已經占用了12KB的數據,第二個文件僅寫入了8KB的數據,硬限制是不能被超越的,而軟限制10KB是可以被超越的,超越的數據,會在這個分區中默認保存7天,然后系統將自動刪除這些數據

 

=======================測試文件數量限制=========================
 #,按照前面的介紹和我們的配置,超過3個文件的軟限制時會給出警告,而無法超過5個文件的硬限制,使用touch來創建空文件
創建空文件省略....
    #超過3個文件時出現了警告
創建空文件省略....
    #touch第6個文件的時候提示創建失敗
    #超過文件數量軟限制的部分同樣會被保存7天,然后被系統自動刪除
    #查看當前用戶的磁盤配額使用情況,兩個已經超出的配置分別是文件大小和文件數量,寬限時間還有6天

 quota -vugs
 #dev/sdb1    20K*  10K  20K   6days   5*    3     5   6days
 #可以使用root權限修改寬限時間
 edquota -t

關閉磁盤配額

    #關閉單個磁盤的磁盤配額
  quotaoff /public
    #關閉所有已經開啟的磁盤配額
  quotaoff -a
    #反之,開啟所有磁盤配額
  quotaon -a
    #如果不再使用磁盤配額,可以將配置文件也刪除
  rm -rf /public/aquota.*
    #最后刪除/etc/fstab中的自動掛載即可

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM