Linux 磁盤配額 quota
Quota一直就是個很有用的東西。如果您曾經申請過網絡的mail服務時,那麽肯定就會明白什麽是20MB的郵件空間、 30MB的免費網頁空間,這個20MB,30MB就是quota這個東西搞出來的。如果我們要限制用戶使用硬盤的容量使用大小,就需要quota來處理。
一、什麽是quota
簡單的說就是限制用戶對磁盤空間的使用量。
在Linux系統中,由於是多人多任務的環境,所以會有多人共同使用一個硬盤空間的情況發生,如果其中有少數幾個使用者大量的占掉了硬盤空間的話,那勢必壓縮其它使用者的使用權力,因此管理員應該適當的開放硬盤的權限給使用者,以妥善的分配系統資源。為了合理的分配磁盤空間,於是就有了quota的出現。
二、quota的用途
quota命令用於顯示用戶或者工作組的磁盤配額信息。輸出信息包括磁盤使用和配額限制。
作用對象:
針對Web服務器,例如:每個人的網頁空間的容量限制。
針對Mail服務器,例如:每個人的郵件空間限制。
針對File服務器,例如:每個人最大的可用網絡硬盤空間。
三、quota的使用限制
僅針對整個partition:quota實際在運作的時候,是針對『整個partition』進行限制的,例如:如果你的/dev/hda5是掛載在/home底下,那麽在/home底下的所有目錄都會受到限制!
核心必須支持quota:Linux系統核心必須有支持quota這個模塊才行。如果您是使用FC4的預設核心,系統已經預設有開放quota這個模塊。如果您是自行編譯核心的,那麽請特別留意您是否已經開啟了quota這個模塊。
只對一般身份使用者有效:並不是所有在Linux上面的賬號都可以設定quota,例如root就不能設定quota,因為整個系統所有的數據幾乎都是他的。
四、quota的使用
quota 選項 參數
選項:
-g:列出群組的磁盤空間限制;
-q:簡明列表,只列出超過限制的部分;
-u:列出用戶的磁盤空間限制;
-v:顯示該用戶或群組,在所有掛入系統的存儲設備的空間限制;
-V:顯示版本信息。
參數:
用戶或者工作組:指定要顯示的用戶或者工作組
[root@localhost(yuaning) ~]# quota -vs -u liubei #查看指定用戶quota quota: Cannot open quotafile /mydata/aquota.user: No such file or directory quota: Cannot open quotafile /root/ccc/aquota.user: No such file or directory Disk quotas for user liubei (uid 1001): Filesystem space quota limit grace files quota limit grace /dev/md6 0K 0K 0K 0 0 0 [root@localhost(yuaning) ~]# quota -guvs # 查看當前用戶的quota限制 quota: Cannot open quotafile /mydata/aquota.user: No such file or directory quota: Cannot open quotafile /root/ccc/aquota.user: No such file or directory Disk quotas for user root (uid 0): Filesystem space quota limit grace files quota limit grace /dev/md6 0K 0K 0K 3 0 0 quota: Cannot open quotafile /mydata/aquota.group: No such file or directory quota: Cannot open quotafile /root/ccc/aquota.group: No such file or directory Disk quotas for group root (gid 0): Filesystem space quota limit grace files quota limit grace /dev/md6 0K 0K 0K 3 0 0
五、quota的相關命令
1. 掃描指令,quotacheck 參數
參數:
-a :掃瞄所有在/etc/mtab內,含有quota支持的filesystem
-u :針對使用者掃描文件與目錄的使用情況,會建立aquota.user
-g :針對群組掃描文件與目錄的使用情況,會建立aquota.group
-v :顯示掃描過程的信息;
-M :強制進行quotacheck的掃描。
[root@localhost(yuaning) ~]# quotacheck -avug quotacheck: Your kernel probably supports journaled quota but you are not using it. Consider switching to journaled quota to avoid running quotacheck after an unclean shutdown. quotacheck: Scanning /dev/md4 [/mydata] done quotacheck: Checked 3 directories and 2 files quotacheck: Skipping /dev/md6 [/backup] quotacheck: Scanning /dev/mapper/vgcyn-lvcyn [/root/ccc] done quotacheck: Checked 3 directories and 2 files
2. 配置指令,edquota 參數
參數:
-u :後面接賬號名稱。可以進入quota的編輯畫面(vi)去設定username的限制值;
-g :後面接群組名稱。可以進入 quota 的編輯畫面(vi)去設定groupname的限制值;
-t :可以修改寬限時間(就是超過quota的soft limit值後,還能使用硬盤的寬限期限)
-p :復制範本。那個username_demo為已經存在並且已設定好quota的使用者
[root@localhost(yuaning) ~]# edquota -u liubei #給用戶配置quota Disk quotas for user liubei (uid 1001): Filesystem blocks soft hard inodes soft hard #blocks是文件大小限制,inodes是文件個數限制 /dev/md4 0 0 0 0 0 0 #soft是警戒線,當使用的值不小於這個值的時候會警告用戶 /dev/md6 0 0 0 0 0 0 #hard是底線,一旦達到這個值,停止使用 /dev/mapper/vgcyn-lvcyn 0 0 0 0 0 0 [root@localhost(yuaning) ~]# 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/md4 7days 7days /dev/md6 14days 7days /dev/mapper/vgcyn-lvcyn 7days 7days
3. 開啟指令,quotaon 參數
參數:
-u :針對用戶啟動quota(aquota.user)
-g :針對群組啟動 quota(aquota.group)
-v :顯示啟動過程的相關訊息;
-a :根據/etc/mtab內的filesystem設定啟動有關的quota,若不加-a的話,則後面就需要加上特定的那個filesystem!
[root@localhost(yuaning) ~]# quotaon -auvg #啟動所有的有quota限制的文件系統 /dev/md4 [/mydata]: group quotas turned on /dev/md4 [/mydata]: user quotas turned on /dev/mapper/vgcyn-lvcyn [/root/ccc]: group quotas turned on /dev/mapper/vgcyn-lvcyn [/root/ccc]: user quotas turned on
4. 關閉指令,quotaoff 參數
參數:
-a :全部的filesystem的quota都關閉(根據/etc/mtab)
-u :僅針對後面接的那個/mount_point關閉user quota
-g :僅針對後面接的那個/mount_point關閉group quota
六、quota舉例
那麽quota從開始準備filesystem的支持到整個設定結束的主要的步驟大概是:
1. 設定partition的filesystem支持quota參數
由於quota必須要讓partition filesystem支持才行,一般來說,支持度最好的是ext2/ext3,啟動filesystem支持quota最簡單就是編輯/etc/fstab,使得準備要開放的quota磁盤可以支持quota
2. 建立quota記錄文件
整個quota進行磁盤限制值記錄的檔案是aquota.user/aquota.group,要建立這兩個檔案就必須要先利用quotacheck掃描才行。接下來的步驟就是:使用quotacheck來掃描一下我們要使用的磁盤
3. 編輯quota限制值數據
使用edquota來編輯每個使用者或群組的可使用空間
4. 重新掃描與啟動quota
設定好quota之後,建議可以再進行一次quotacheck,然後再以quotaon來啟動
註意:當開啟quota的時候,配置好參數,掃描磁盤的時候,有時候會quotacheck失敗,是因為在生成quota數據庫的時候,沒有關閉selinux,操作如下:
[root@localhost(yuaning) ~]# setenforce 0 setenforce: SELinux is disabled [root@localhost(yuaning) ~]# vim /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled #將enforcing 改為disabled 即可 # SELINUXTYPE= can take one of three two values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted
Linux 磁盤配額 quota