一、配置配額系統:
綜述:
磁盤配額的作用范圍:
quota軟件設置的磁盤配額功能,只在指定的文件系統分區中有效,用戶使用其他未設置配額的文件系統時,將不會受到限制;
磁盤配額的限制對象:
quota主要針對系統中指定的用戶賬號、組賬號進行限制,沒有被設置限額的用戶或組將不受影響。對組賬號設置配額后,組內所有用戶使用的磁盤容量、文件數量的總和不能超過限制。
磁盤配額的限制類型:
硬盤容量:限制用戶能夠使用的磁盤數據塊(block)大小,也就是限制磁盤空間大小,默認單位為KB。
文件數量:限制用戶能夠擁有的文件個數。quota通過限制i節點的數量來實現對文件數量的限制。
磁盤配額的限制方法:
軟限制:制定一個軟性的配額數值(如 480MB、180個文件),在固定的寬限期內(默認為七天)允許用戶暫時超過這個限制,但系統會給出警告信息。
硬限制:指定一個硬性的配額數值(如 500MB、200個文件),時絕對禁止用戶超過這個限制值得,當達到硬限制值時,系統也會給出警告並禁止繼續寫入數據。硬限制的配額值應大於相應的軟限制的值,否則軟限制將失效。
1、以支持磁盤配額功能的方式掛載文件系統:
除了內核和quota軟件支持外,實施磁盤配額功能還有一個前提條件,即指定的分區必須已經掛載且支持磁盤配額功能。
讓分區支持磁盤配額選項:
usrquota選項:支持對用戶的磁盤配額;
grpquota選項:支持對組的磁盤配額;
示例:
在配置磁盤配額過程中,可以使用帶”-o usrquota grpquota” 選項的mount命令重新掛載指定的分區以便增加對用戶、組配額功能。
mount -o usrquot,grpquota /dev/sdb1
若需要在每次系統開機后自動以支持磁盤配額的功能方式掛載該分區,可以將usrquot和grpquota選項參數寫到/etc/fstab配置文件中。
[root@centos7 ~]# vim /etc/fstab /dev/sdb1 /home ext4 defaults,usrquota,grpquota 0 0 [root@centos7 ~]#mount -a
2、檢測磁盤配額並生成配額文件:
quotacheck命令:
-a:表示掃描所有分區,查看是否有較早版本的配額文件;
-c:常與u,g選項配合使用,創建用戶、組的配額文件;
示例:
[root@centos7 ~]# quotacheck -cug /home
查看在/home目錄下生成的用戶配額文件和組配額文件:
[root@centos7 ~]# file aquota.* aquota.group: data aquota.user: data
開啟或者取消磁盤配額功能:
quotaon :開啟磁盤配額
quotaon -p 查看是否開啟磁盤配額;
quotaoff :關閉磁盤配額
示例:
查看是否開啟磁盤配額:
[root@centos7 ~]# quotaon -p /home group quota on /home (/dev/sdb1) is off user quota on /home (/dev/sdb1) is off
開啟磁盤配額:
[root@centos7 ~]# quotaon /home
關閉磁盤配額:
[root@centos7 ~]# quotaoff /home
3、編輯用戶和組的賬號的配額設置:
edquota命令:結合-u和-g選項可用於編輯用戶或組的配額設置;
(1)edquota -u username
(2)直接在shell命令行編寫(適合編寫shell腳本使用)
setquota username 500000 600000 1500 2000 /filesystem
示例:
root@centos7 ~]# setquota zhangsan 500000 600000 1500 2000 /home
(3)定義標准的用戶 (相當於copy user1的磁盤配額給user2)
edquota -p user1 user2
示例:
[root@centos7 ~]# edquota -p zhangsan fan
示例:
為用戶zhangsan編輯磁盤配額:
[root@centos7~]# edquota -u zhangsan Disk quotas for user zhang (uid 1000): Filesystem blocks soft hard inodes soft hard /dev/sdb1 0 500000 600000 0 1500 2000
在edquota的編輯界面中,各字段分別代表的含義如下:
Filesystem:表示本行配置記錄對應的文件系統,即配額的作用范圍;
blocks:表示用戶已經使用的磁盤容量,單位為KB,該值由edquota自動計算;
soft:第3列的soft對應為磁盤容量的軟限制數值;
hard:第4列的hard對應為磁盤容量的硬限制數值;
inodes:表示用戶當前已經擁有的文件數量,(i節點數)有edquota自動計算;
soft:第6列的soft對應為文件數量的軟限制數值;
hard:第7列的hard對應為文件數量的硬限制數值;
測試磁盤配額:
綜上可知我們為用戶zhangsan設置的磁盤硬限制是600MB,這是我們dd一個650MB的文件,這時我們已經看到拒絕寫入數據了。
[zhangsan@centos7 ~]$ dd if=/dev/zero of=/home/zhangsan/bb bs=1M count=650 sdb1: warning, user block quota exceeded. sdb1: write failed, user block limit reached. (寫入失敗,磁盤配額空間已滿) dd: error writing ‘/home/zhangsan/bb’: Disk quota exceeded 586+0 records in 585+0 records out 614371328 bytes (614 MB) copied, 0.800515 s, 767 MB/s [zhangsan@centos7 ~]$ du -sh /home/zhangsan/bb 586M /home/zhangsan/bb [zhangsan@centos7 ~]$
使用quota命令查看用戶zhangsan的磁盤使用情況:
[root@centos7 ~]# quota zhangsan Disk quotas for user zhangsan (uid 1000): Filesystem blocks quota limit grace files quota limit grace /dev/sdb1 600000* 500000 600000 7days 15 1500 2000 [root@centos7 ~]#
使用repquota命令查看/home文件系統的配額使用情況報告:
[root@centos7 ~]# repquota /home 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 — 14 0 0 7 0 0 zhangsan +- 600000 500000 600000 6days 15 1500 2000 fan — 14 500000 600000 7 1500 2000 root — 14 500000 600000 7 1500 2000 [root@centos7 home]#
配置磁盤配額使用的命令總結:
usrquota、grpquota
quotacheck
quotaon quotaoff
edquota setquota
quota repquota
warnquota (磁盤配額報警軟件,可以郵件通知)
ext系列文件系統的quota
1.開啟quota(ext、xfs)
[root@centos6 ~]#vim /etc/fstab
在需要開啟quota的文件系統的掛載選項的defaults后加usrquota,grpquota如下
/dev/sda5 /backup ext4 defaults,usrquota,grpquota 1 0
2.生成quota數據庫
[root@centos6 ~]#quotacheck -cugm /backup/
3.開啟quota
[root@centos6 ~]#quotaon /backup
quota
-v 顯示當前用戶自己的quota限額
-v username 顯示指定用戶的quota限額 僅限root
repquota -v /backup 顯示所有用戶的quota限額(僅限用戶在該目錄有所屬的文件) 僅限root
[root@centos6 ~]#repquota -v /backup/ *** Report for user quotas on device /dev/md126 Block grace time: 7days; Inode grace time: 7days Block limits File limits User used soft hard grace used soft hard grace ---------------------------------------------------------------------- root -- 1284 0 0 3 0 0 sunquan -- 0 40960 51200 0 0 0 Statistics: Total blocks: 7 Data blocks: 1 Entries: 2 Used average: 2.000000
4.配置quota
edquota -u/g username/groupname
edquota -u liubei
edquota -g shuguo
或非交互式
[root@centos6 ~]# setquota -u[default] |-g username|groupname 10M 20M 5 20 /backup [root@centos6 ~]#setquota -u liubei 0 0 0 0 /backup [root@centos6 ~]# setquota -g shuguo 10M 20M 50 100 /backup [root@centos6 ~]#edquota -p liubei zhangfei 將liubei的quota設置復制給zhangfei
注意:對group設置quota時,應該對附加組設置,同時,目錄要設置sgid權限才有意義
xfs文件系統的quota
1.開啟quota(ext、xfs)
vim /etc/fstab
在需要開啟quota的文件系統的掛載選項的defaults后加usrquota,grpquota如下
/dev/sda5 /app ext4 defaults,usrquota,grpquota 1 0
一定要卸載再掛載才生效
2.配置
xfs_quota -x -c "print" 查看當前系統中所有的xfs文件系統哪些開啟了quota
[root@localhost ~]# xfs_quota -x -c "print" Filesystem Pathname / /dev/mapper/centos-root /backup /dev/md0 (uquota, gquota) /app /dev/mapper/centos-app /boot /dev/sda1
xfs_quota -x -c "report -ugibh" /backup查看quota設置
[root@localhost ~]# xfs_quota -x -c "report -ugibh" /backup/ User quota on /backup (/dev/md0) Blocks Inodes User ID Used Soft Hard Warn/Grace Used Soft Hard Warn/Grace ---------- --------------------------------- --------------------------------- root 0 0 0 00 [0 days] 3 0 0 00 [------] sunquan 0 40M 50M 00 [------] 0 0 0 00 [------] Group quota on /backup (/dev/md0) Blocks Inodes Group ID Used Soft Hard Warn/Grace Used Soft Hard Warn/Grace ---------- --------------------------------- --------------------------------- root 0 0 0 00 [------] 3 0 0 00 [------]
-u 查看用戶的
-g 查看組的
-i 查看inode
-b 查看block (默認)
-h human-readable
默認是-ug
***-uibh
xfs_quota -x -c "state" /backup 查看qutoa狀態,顯示grace time時間
[root@localhost ~]# xfs_quota -x -c "state" /backup/ User quota state on /backup (/dev/md0) Accounting: ON Enforcement: ON Inode: #67 (2 blocks, 2 extents) Group quota state on /backup (/dev/md0) Accounting: ON Enforcement: ON Inode: #68 (2 blocks, 2 extents) Project quota state on /backup (/dev/md0) Accounting: OFF Enforcement: OFF Inode: #68 (2 blocks, 2 extents) Blocks grace time: [14 days] Inodes grace time: [7 days] Realtime Blocks grace time: [7 days]
xfs_quota -x -c "limit -u bsoft=30M bhard=40M liubei" /backup
對用戶設置quota
xfs_quota -x -c "limit -g bsoft=50M bhard=100M shuguo" /backup
對組設置quota
xfs_quota -x -c "timer -u -b 14days" /app
設置quota grace time
獲取幫助
xfs_quota -x -c "help limit"
xfs_quota -x -c "help report"
