在網(wǎng)絡(luò)管理的工作中,由于硬盤的資源是有限的,常常需要為多用戶的服務(wù)器設(shè)定用戶的linux磁盤配額。這個功能對公用的多用戶服務(wù)器(免費的或者收費的)來說,更是非常必要的。Quota就是在RedHatlinux下實現(xiàn)linux磁盤配額的工具。 quota只支持單獨的掛載文件系統(tǒng) 不是某一個目錄。
1. 掛載目錄加入 quota
查看/home目錄掛載情況
[root@bogon ~]# df -h /home
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 2.0G 35M 1.8G 2% /home
[root@bogon ~]# mount | grep home
/dev/sda3 on /home type ext4 (rw)
使用者與群組的 quota 文件系統(tǒng)支持參數(shù):usrquota, grpquota
[root@bogon ~]# mount -o remount,usrquota,grpquota /home
查看 確定加了 usrquota,grpquota
[root@bogon ~]# mount | grep home
/dev/sda3 on /home type ext4 (rw,usrquota,grpquota)
編輯 fstab文件讓系統(tǒng)啟動時掛載quota
[root@bogon ~]# vi /etc/fstab 重啟后生效
LABEL=/home /home ext4 defaults,usrquota,grpquota 1 2
重新掛載
[root@bogon ~]# umount /home
[root@bogon ~]# mount -a
[root@bogon ~]# mount | grep home
2. quota安裝 生成usrquota, grpquota兩個目錄
對整個系統(tǒng)含有 usrquota, grpquota 參數(shù)的文件系統(tǒng)進(jìn)行 quotacheck 掃瞄
[root@bogon ~]# quotacheck -avug
-bash: command not found
[root@bogon ~]# yum install quota
安裝quota
[root@bogon ~]# quotacheck -avug
自動創(chuàng)建 usrquota, grpquota兩個目錄
[root@bogon ~]# ll -d /home/
-rw------- 1 root root 8192 Mar 6 11:58 /home/aquota.group
-rw------- 1 root root 9216 Mar 6 11:58 /home/aquota.user
這時, 由于某種需要,或者在某種情況,“不得不”運行這個命令 :
[root@bogon ~]# quotacheck -avug -mf
參數(shù) -m[M] 意思是:強(qiáng)迫在“讀、寫”模式下檢查硬盤的 quota (有一定的“正在寫”的數(shù)據(jù)丟失可能,應(yīng)確保沒有進(jìn)程在寫這個分區(qū)。建議在單用戶模式下進(jìn)行。)。
[root@bogon ~]# quotaon -auvg
啟動 quota
/dev/sda3 [/home]: group quotas turned on
/dev/sda3 [/home]: user quotas turned on
3. quota限制大小設(shè)置
myquota1賬號加入quota 限制使用 在這里固定每個用戶使用的磁盤大小為500M
[root@bogon ~]# useradd myquota1
[root@bogon ~]# edquota -u myquota1
Filesystem blocks soft hard inodes soft hard
/dev/sda3 80 500000 600000 10 0 0
復(fù)制myquota1用戶的信息給 myquota2
[root@bogon ~]# edquota -p myquota1 -u myquota2
[root@bogon ~]# edquota -g myquotagrp
編輯myquotagrp組的總共使用大小
Filesystem blocks soft hard inodes soft hard
/dev/sda3 160 10000000 12000000 20 0 0
[root@bogon ~]# edquota -t
修改寬限時間 當(dāng)使用者文件超過大小時
[root@bogon ~]# quota -uvs myquota1 myquota2
查詢使用情況
Filesystem blocks quota limit grace files quota limit grace
/dev/sda3 80 495M 595M 10 0 0
Disk quotas for user myquota2 (uid 501):
Filesystem blocks quota limit grace files quota limit grace
/dev/sda3 80 495M 595M 10 0 0
[root@bogon ~]# quota -gvs myquotagrp
查詢myquotagrp組使用情況
edquota -g myquotagrp
Filesystem blocks soft hard inodes soft hard
/dev/sda3 160 1000M 1200M 20 0 0
[root@bogon ~]# repquota -auvs 查詢所有用戶使用情況
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 20 0 0 2 0 0
myquota1 -- 32 495M 595M 10 0 0
myquota2 -- 32 495M 595M 10 0 0
myquotagrp -- 64 1000M 1200M 20 0 0
Statistics:
Total blocks: 7
Data blocks: 1
Entries: 4
Used average: 4.000000
4. quota 測試
利用 myquota1 的身份,建置一個 550MB 的大文件,并觀察 quota 結(jié)果!
[root@bogon ~]# dd if=/dev/zero of=bigfile bs=1M count=550
[root@bogon ~]# repquota -auv
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
myquota1 +- 556840 500000 600000 13days 11 0 0
你可以發(fā)現(xiàn) myquota1 的 grace 出現(xiàn)!
再創(chuàng)建另外一個大文件,讓總?cè)萘砍^ 600M !
[root@bogon ~]# dd if=/dev/zero of=bigfile2 bs=1M count=600
du -sk
600000 . 文件大小已經(jīng)查過了設(shè)置的大小 操作失敗
[root@bogon ~]# warnquota 查看是否有警告信息
您如果要取消磁盤空間的限制,可用以下命令,請看:
[root@bogon ~]# quotaoff /home
(取消磁盤空間限制。)
[root@bogon ~]# quotaon /home
(現(xiàn)在啟動磁盤空間限制。)
PS:quota命令的基礎(chǔ)用法整理
語法
quota [ -u [ User ] ] [ -g [ Group ] ] [ -v | -q ]
描述
root 用戶可以使用帶有可選 User 參數(shù)的 -u 標(biāo)志查看其它用戶的限制。沒有 root 用戶權(quán)限的用戶可以通過使用帶有可選 Group 參數(shù)的 -g 標(biāo)志來查看它們所屬的組的限制。
注:
如果某個特定用戶在對他有限額的文件系統(tǒng)上沒有文件,該命令為那個用戶顯示 quota: none。當(dāng)用戶在文件系統(tǒng)中有文件時,顯示用戶的實際限額。
標(biāo)志
-g 顯示用戶組的限額。
-u 顯示用戶限額。該標(biāo)志是缺省選項。
-v 顯示沒有已分配存儲器的文件系統(tǒng)上的限額。
-q 打印扼要消息,只包含關(guān)于使用超過限額的文件系統(tǒng)的信息。
注:
-q 標(biāo)志優(yōu)先于 -v 標(biāo)志。
安全性
訪問控制:該命令由 root 用戶和 bin 組擁有。
特權(quán)控制:該程序是 setuid 為了允許非特權(quán)用戶查看個人限額。
示例
(1). 要顯示用戶 keith 的限額,請輸入:
quota
系統(tǒng)顯示下列信息:
User quotas for user keith (uid 502):
Filesystem blocks quota limit grace Files quota limit grace
/u 20 55 60 20 60 65
(2). 要作為 root 用戶顯示用戶 davec 的限額,請輸入:
quota -u davec
系統(tǒng)顯示下列信息:
User quotas for user davec (uid 2702):
Filesystem blocks quota limit grace files quota limit grace
/u 48 50 60 7 60 60
文件
quota.user
指定用戶限額。
quota.group
指定組限額。
/etc/filesystems
包含文件系統(tǒng)名稱和位置。