一、配置配额系统:
综述:
磁盘配额的作用范围:
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: dataaquota.user: data
开启或者取消磁盘配额功能:
quotaon :开启磁盘配额
quotaon -p 查看是否开启磁盘配额;
quotaoff :关闭磁盘配额
示例:
查看是否开启磁盘配额:
[root@centos7 ~]# quotaon -p /homegroup quota on /home (/dev/sdb1) is offuser 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 zhangsanDisk 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 zhangsanDisk 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/md126Block grace time: 7days; Inode grace time: 7days Block limits File limitsUser 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: 7Data blocks: 1Entries: 2Used 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"