2021-05-12 14:32:11
Linux教學之磁碟配額(Quota)
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
相關文章