关于磁盘配额
磁盘配额:限制某个用户能够使用的磁盘空间,例如linux中的某个用户,不断的上传垃圾文件,占用磁盘空间
磁盘配额针对对一般身份用户和用户组有效,对root权限用户无效
centos6只能作用在分区上,centos7不仅能作用在分区上,还能作用在目录上
磁盘配额的记录文件保存在开启磁盘配额分区的根目录下面,它们是aquota.user和aquota.group
软限制soft(最低限制):超过该限制容量,会出现警告,超过的部分会保存到宽限时间到期
硬限制hard(最高限制):不能被超越的限制,超过及报错
宽限时间(默认7天):超过soft但还没达到hard,到期自动清除超出soft的数据。所以尽量在宽限期内将数据优化到小于soft
查看内核是否支持磁盘配额
[root@www boot]# grep CONFIG_QUOTA /boot/config-2.6.32-431.el6.x86_64
[root@mail ~]# grep CONFIG_QUOTA /boot/config-3.10.0-514.el7.x86_64
CONFIG_QUOTA=y
CONFIG_QUOTA_NETLINK_INTERFACE=y
# CONFIG_QUOTA_DEBUG is not set
CONFIG_QUOTA_TREE=y
CONFIG_QUOTACTL=y
###########################完美的分割线#####################
Xfs文件系统
#针对用户
[root@localhost ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Thu Jan 4 16:42:41 2018
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/cl-root / xfs defaults 0 0
UUID=2bcfa690-4957-4c27-bdaf-f5146a1c01c4 /boot xfs defaults 0 0
/dev/mapper/cl-swap swap swap defaults 0 0
/dev/sdb1 /local xfs defaults,usrquota,grpquota,prjquota 0 0
[root@localhost ~]# xfs_quota -x -c 'limit bsoft=1m bhard=2m jack' /local
[jack@localhost local]$ dd if=/dev/zero of=/local/123 bs=1024
dd: 写入"/local/123" 出错: 超出磁盘限额
记录了2049+0 的读入
记录了2048+0 的写出
2097152字节(2.1 MB)已复制,1.41298 秒,1.5 MB/秒
用户mike没有限制
[mike@localhost local]$ dd if=/dev/zero of=/local/456 bs=1024
^C记录了8373+0 的读入
记录了8373+0 的写出
8573952字节(8.6 MB)已复制,5.7863 秒,1.5 MB/秒
# 针对目录
[root@localhost local]# mkdir testdir
[root@localhost local]# echo 11:/local/testdir >> /etc/projects #将一个项目ID(自定义)和被限制的目录绑定并放到/etc/projects 配置文件中
[root@localhost local]# echo baby:11 >> /etc/projid #自定义项目名称(即baby)并与项目ID绑定并放到/etc/projid配置文件中
[root@localhost local]# xfs_quota -x -c 'project -s baby' /local/ #初始化
Setting up project baby (path /local/testdir)...
Processed 1 (/etc/projects and cmdline) paths for project baby with recursion depth infinite (-1).
[root@localhost local]# xfs_quota -x -c 'limit -p bsoft=1m bhard=2m baby' /local/ #配置限额
[root@localhost testdir]# xfs_quota -x -c 'report /local/testdir' #打印当前所有的配额报告
Project quota on /local (/dev/sdb1)
Blocks
Project ID Used Soft Hard Warn/Grace
---------- --------------------------------------------------
#0 27756 0 0 00 [--------]
baby 0 1024 2048 00 [--------]
[root@localhost testdir]# dd if=/dev/zero of=/local/testdir/999 bs=1024 #测试
dd: 写入"/local/testdir/999" 出错: 设备上没有空间
记录了2049+0 的读入
记录了2048+0 的写出
2097152字节(2.1 MB)已复制,0.0367911 秒,57.0 MB/秒
目录aadir没有限制
[root@localhost aadir]# dd if=/dev/zero of=/local/aadir/888 bs=1024
^C记录了433661+0 的读入
记录了433661+0 的写出
444068864字节(444 MB)已复制,4.0149 秒,111 MB/秒
###########################完美的分割线#####################
Ext4 / 根分区(如果是为如/dev/sdb1分区这样的单独分区配置磁盘配额步骤相同)
#<1> 安装磁盘配额工具quota
[root@mail ~]# yum -y install quota
#<2> 新建测试账号
[root@mail ~]# useradd cipanpeie
[root@mail ~]# passwd cipanpeie
更改用户 cipanpeie 的密码 。
新的 密码:
无效的密码: 密码未通过字典检查 - 过于简单化/系统化
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
# <3>/etc/fstab挂载文件添加支持quota的选项
[root@mail ~]# vim /etc/fstab
#
# /etc/fstab
# Created by anaconda on Tue May 15 01:21:06 2018
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/VolGroup-lv_root / ext4 defaults,usrquota,grpquota 1 1
UUID=195f01a8-8d60-4094-9937-79499f1c99c5 /boot ext4 defaults 1 2
/dev/mapper/VolGroup-lv_swap swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/cdrom /mnt iso9660 defaults 0 0
[root@localhost /]# useradd jack
[root@localhost /]# passwd jack
更改用户 jack 的密码 。
新的 密码:
无效的密码: 密码未通过字典检查 - 过于简单化/系统化
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost /]# xfs_quota -x -c 'limit bsoft=1m bhard=2m jack' /local
[root@localhost /]# chmod -R 777 /local/
# <4> 重新挂载分区
[root@localhost ~]# mount -o remount /
[root@localhost ~]# mount
/dev/mapper/VolGroup-lv_root on / type ext4 (rw,usrquota,grpquota)
# <5> 建立quota的数据库(即磁盘配额的配置文件)
[root@localhost ~]# quotacheck -vug
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/mapper/VolGroup-lv_root [/] done
quotacheck: Cannot stat old user quota file //aquota.user: 没有那个文件或目录. Usage will not be substracted.
quotacheck: Cannot stat old group quota file //aquota.group: 没有那个文件或目录. Usage will not be substracted.
quotacheck: Cannot stat old user quota file //aquota.user: 没有那个文件或目录. Usage will not be substracted.
quotacheck: Cannot stat old group quota file //aquota.group: 没有那个文件或目录. Usage will not be substracted.
quotacheck: Checked 3332 directories and 23912 files
quotacheck: Old file not found.
quotacheck: Old file not found.
#-v 显示扫描过程
#-u 建立quota.user配置文件
#-g 建立quota.group配置文件
[root@localhost ~]# ls
aquota.group aquota.user lost+found
# <6> 配置磁盘配额
# 分给用户 cipanpeie总共1M的磁盘空间
[root@localhost ~]# edquota -u cipanpeie
Disk quotas for user cipanpeie (uid 500):
Filesystem blocks soft hard inodes soft hard
/dev/mapper/VolGroup-lv_root 16 0 1024 5 0 0
#Filesystem 磁盘配额作用的分区
#blocks 当前已经使用的大小
#soft 软限制;
#hard硬限制。软硬限制默认单位都是KB
#inodes 当前已经使用的inode大小,不用修改
#后面的两个的soft、hard分别表示分区中这个用户可以创建的文件数目软硬限制
[root@localhost ~]# quota -uvs cipanpeie
Disk quotas for user cipanpeie (uid 500):
Filesystem blocks quota limit grace files quota limit grace
/dev/mapper/VolGroup-lv_root
16 0 1024 5 0 0
# <7>开启磁盘配额
[root@localhost ~]# quotaon /
/dev/mapper/VolGroup-lv_root [/]: group quotas turned on
/dev/mapper/VolGroup-lv_root [/]: user quotas turned on
# <8> 测试:
[cipanpeie@localhost /]$ dd if=/dev/zero of=/home/cipanpeie/123 bs=1024
dm-0: write failed, user block limit reached.
dd: 正在写入"/home/cipanpeie/123": 超出磁盘限额
记录了1009+0 的读入
记录了1008+0 的写出
1032192字节(1.0 MB)已复制,0.0563879 秒,18.3 MB/秒
quotaoff 关闭磁盘配额
-a 开启或关闭所有
Linux(Centos)磁盘配额
猜你喜欢
转载自blog.csdn.net/cql08e/article/details/81410234
今日推荐
周排行