首頁 > 軟體

Linux教學之磁碟配額(Quota)

2020-06-16 17:35:02

1.什麼是quota

簡單的說就是限制使用者對磁碟空間的使用量。

因為Linux是多使用者多工的作業系統,許多人共用磁碟空間,為了合理的分配磁碟空間,於是就有了quota的出現。

2.quota的用途
    顯示磁碟使用情況和配額

3.quota的一般作用物件
    (1)針對WWW server
    (2)針對mail server
    (3)針對file server
4.quota的限制
    (1)僅能針對整個檔案系統
    (2)需要kernel的支援
    (3)只對一般使用者有效

5.quota的使用

測試環境   

RHEL6.6(預設kernel已經支援quota功能)

/dev/sdb1  供測試的檔案系統

使用者組   myquota

使用者   quota1,quota2

具體操作如下

(1)重新掛/dev/sdb1檔案系統,並新增usrquota,grpquota引數

[root@localhost ~]# mount -o remount,usrquota,grpquota /dev/sdb1

重新掛載後,/dev/sdb1這個分割區就支援quota功能了

[root@localhost ~]# mount | grep /dev/sdb1
    /dev/sdb1 on /mnt/test type ext4 (rw,usrquota,grpquota)

(2)新增使用者組和使用者

[root@localhost ~]# groupadd myquota
    [root@localhost ~]# useradd -g myquota quota1
    [root@localhost ~]# useradd -g myquota quota2
    

(3)生成quota組態檔

[root@localhost ~]# cd /mnt/test/

[root@localhost test]# quotacheck -ug . 

[root@localhost test]# ls
    aquota.group  aquota.user  lost+found  生成quota組態檔
    (4)啟動quota功能

[root@localhost test]# quotaon /dev/sdb1
    若要關閉 使用quotaoff命令

(5)修改quota組態檔

組態檔內容如下
      Filesystem                  blocks      soft      hard    inodes    soft    hard
      /dev/sdb1                        0              0          0            0          0          0

需要修改的是soft/hard的值,單位是KB,soft為警告值,hard為最大值,當磁碟使用量在soft-hard之間,就會發出警告(預設倒計時7天),若超過警告時間,磁碟使用量依然在soft-hard 之間,則會禁止使用磁碟空間。

若修改blocks的soft/hard表示規定使用者可以使用的磁碟空間大小(一般都是規定磁碟使用量)

若修改的是inodes的 soft/hard值,表示規定使用者可以建立的檔案個數. 

 

[root@localhost test]# edquota -u quota1    -->修改針對quota1使用者的設定        

Disk quotas for user quota1 (uid 500):
      Filesystem                  blocks          soft            hard        inodes      soft    hard
      /dev/sdb1                        0          100000      200000          0            0          0

[root@localhost test]# edquota -u quota2    -->修改針對quota2使用者的設定

Disk quotas for user quota2 (uid 501):
      Filesystem                  blocks      soft              hard        inodes    soft    hard
      /dev/sdb1                    0            100000        200000          0            0        0
  

[root@localhost test]# edquota -g myquota  -->修改針對myquota組的設定

Disk quotas for group myquota (gid 500):
      Filesystem                  blocks      soft      hard    inodes    soft    hard
      /dev/sdb1                    251200    100000    300000          3        0        0   

 這樣設定表示quota1,quota2使用者最多使用200M的磁碟空間,超過100M就發出警告並進入倒計時,而myquota組最多使用300M的磁碟空間。

 也就是說,雖然quota1,quota2都有200M的最大磁碟空間能使用許可權,但他們都屬於myquota組,他們的總量不得超過300M

 

修改許可權

[root@localhost test]# chmod 777 .
    [root@localhost test]# ll -d
    drwxrwxrwx. 3 root root 4096 8月  23 09:36 .
    切換quota1使用者,進行測試

[root@localhost test]# su quota1
    [quota1@localhost test]$ dd if=/dev/zero of=bigfile1 bs=1M count=150
    sdb1: warning, user block quota exceeded.  -->警告
    記錄了150+0 的讀入
    記錄了150+0 的寫出
    157286400位元組(157 MB)已複製,1.02545 秒,153 MB/秒

再寫入一個大檔案

[quota1@localhost test]$ dd if=/dev/zero of=bigfile2 bs=1M count=150
    sdb1: write failed, user block limit reached.
    dd: 正在寫入"bigfile2": 超出磁碟限額  -->超過200M的部分就無法寫入了
    記錄了46+0 的讀入
    記錄了45+0 的寫出
    47513600位元組(48 MB)已複製,0.381467 秒,125 MB/秒

切換quota2使用者

[root@localhost test]# su quota2
    [quota2@localhost test]$ ls
    aquota.group  aquota.user  bigfile1  bigfile2  lost+found
    [quota2@localhost test]$ dd if=/dev/zero of=bigfile3 bs=1M count 50

記錄了50+0 的讀入
    記錄了50+0 的寫出
    52428800位元組(52 MB)已複製,0.410838 秒,128 MB/秒

修改警告時間

[root@localhost test]$ edquota -t

Grace period before enforcing soft limits for users:
    Time units may be: days, hours, minutes, or seconds
      Filesystem            Block grace period    Inode grace period
      /dev/sdb1                    7days                          7days

 

檢視quota1的quota資訊

[quota1@localhost test]$ quota -u quota1
    Disk quotas for user quota1 (uid 500):
       Filesystem  blocks  quota  limit  grace  files  quota  limit  grace
        /dev/sdb1  200000* 100000  200000  6days      2      0      0          -->已經進入警告的倒計時了
    

查詢quota2的quota資訊

[root@localhost test]# quota -u quota2
    Disk quotas for user quota2 (uid 501):
        Filesystem  blocks  quota  limit  grace  files  quota  limit  grace
        /dev/sdb1  51200  100000  200000              1      0      0       

查詢myquota組的quota資訊
    [root@localhost test]# quota -g myquota
    Disk quotas for group myquota (gid 500):
        Filesystem  blocks  quota  limit  grace  files  quota  limit  grace
         /dev/sdb1  251200* 100000  300000  6days      3      0      0

總結:

quotacheck [ -gubcfinvdMmR ] [ -F quota-format ] -a | filesystem

   -a   檢查所有/etc/mtab中掛在的檔案系統

   -u  只檢查使用者的quota

   -g  只檢查使用者組的quota

quota

  不使用任何引數,查詢當前使用者的quota資訊

  -u  username  查詢某使用者的quota資訊

  -g  groupname  查詢某使用者組的quota資訊

edquota

  -u username   編輯某使用者的quota設定

  -g groupname  編輯某使用者組的quota設定

  -t        編輯警告時間的設定

 

還有一個綜合查詢命令是

repquota

   -a  報告所有支援quota的檔案系統

   -u 報告針對user的quota資訊

   -g 包裹針對group的quota資訊

一般三個引數一起使用

[root@localhost test]# repquota -aug
      *** Report for user quotas on device /dev/sdb1
      Block grace time: 7days; Inode grace time: 7days
                        Block limits                File limits
      User            used    soft    hard  grace    used  soft  hard  grace
      ----------------------------------------------------------------------
      root      --      20      0      0              2    0    0     
      quota1    +-  200000  100000  200000  6days      2    0    0     
      quota2    --  51200      0      0              1    0    0     


      *** Report for group quotas on device /dev/sdb1
      Block grace time: 7days; Inode grace time: 7days
                        Block limits                File limits
      Group          used    soft    hard  grace    used  soft  hard  grace
      ----------------------------------------------------------------------
      root      --      20      0      0              2    0    0     
      myquota  +-  251200  100000  300000  7days      3    0    0 

本文永久更新連結地址http://www.linuxidc.com/Linux/2016-08/134544.htm


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