磁盘配额(quota)的应用与实践
什么是quota
举例来说,用户的默认主文件夹是在/home下面,如果/home是个独立的分区,假设是10G,/home下有30个账号,这样30个用户共享这10G的空间。如果某个用户占用大量空间,那其他用户可用的空间将很小。这时需要使用quota来限制用户。
quota一般用途
- 针对WWW server,限制每个人的网页空间容量
- 限制某一用户组所能使用的最大磁盘配额
- 限制某一用户的最大磁盘配额
quota的使用限制
- 仅针对整个文件系统,例如:/dev/sda5挂载在/home下面,那么在/home下的所有目录都会受到限制
- 内核必须支持quota
- 只对一般用户有效
quota的规范设置选项
- 容量限制或文件数量限制:限制用户的block用量或者inode用量
- soft/hard:当用户使用容量高于soft值低于hard值时,系统会警告用户及时清理磁盘并设置期限,期限内未使磁盘容量降低到soft值以下的话,用户将失去对磁盘的使用权。
一个quota范例
创建一个用户组myquotagrp,五个用户myquota1,myquota2,myquota3,myquota4,myquota5.
[root@localhost ~]# vim addaccount.sh groupadd myquotagrp for username in myquota1 myquota2 myquota3 myquota4 myquota5 do useradd -g myquotagrp ${username} echo "password" | passwd --stdin $username done [root@localhost ~]# sh addaccount.sh 更改用户 myquota1 的密码 。 passwd:所有的身份验证令牌已经成功更新。 更改用户 myquota2 的密码 。 passwd:所有的身份验证令牌已经成功更新。 更改用户 myquota3 的密码 。 passwd:所有的身份验证令牌已经成功更新。 更改用户 myquota4 的密码 。 passwd:所有的身份验证令牌已经成功更新。 更改用户 myquota5 的密码 。 passwd:所有的身份验证令牌已经成功更新。
” echo "password" | passwd --stdin $username “ 中passwd --stdin $username是更改$username变量的密码,加上--stdin是接受echo后面的字符串(password)做为密码。
实践quota流程1:文件系统支持
因为本机只有/boot是独立的文件系统,因此使用这个目录来实验。
查看该目录是否为独立的文件系统
[root@localhost ~]# df -h /boot 文件系统 容量 已用 可用 已用% 挂载点 /dev/sda1 497M 157M 341M 32% /boot [root@localhost ~]# mount | grep boot /dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
编辑配置文件
[root@localhost ~]# vim /etc/fstab # # /etc/fstab # Created by anaconda on Mon Apr 25 13:00:42 2016 # # 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/centos-root / xfs defaults 0 0 UUID=faacc6c4-79d8-423b-b769-6664dcf17f88 /boot xfs defaults 0 0 /dev/mapper/centos-swap swap swap defaults 0 0 LABEL=/boot /boot ext3 defaults,usrquota,grpquota 1 2
实践quota流程2:新建quota配置文件
quota是通过分析整个文件系统中的每个用户(用户组)拥有的文件总数与总容量,将这些记录在该文件系统的顶层目录,然后在该配置文件中再使用每个账号的限制值去规定磁盘的用量。
使用quotacheck命令扫描支持quota参数(usrquota,grpquota)的文件系统
本人的机子的文件系统好像有问题,后面的实验没法进行,暂时到这里