一、磁盘配额(Quota)的应用与实践
在Linux系统中,由于是多用户、多任务的环境,所以会有多用户共同使用一个硬盘空间的情况发生,如果其中有少数几个用户大量占掉了硬盘空间的话,那肯定会影响其他用户的使用权限。因此管理员应该适当限制硬盘的空间给用户,以妥善分配系统资源。此时,就可以使用Quota。
实例环境:5个用户myquota{1,2,3,4,5}都属于myquotagrp
独立分区/dev/hda3 挂载点/home
每个用户300MB(hard),250MB(soft)
myquotagrp用户组组多仅能使用1000MB(hard),900MB(soft)
1.让文件系统支持quota
#mount -o remount,usrquota,grpquota /home
#mount | grep home
或是写入配置文件
#vim /etc/fstab
LABEL=/home /home ext3 defaults,usrquota,grpquota 1 2
#umount /home
#mount -a
#mount | grep home
/dev/hd3 on /home type ext3 (rw,usrquota,grpquota)
2.新建Quota配置文件
#quotacheck [-avugfM] [/mount_point]
参数:
-a: 扫描所有在/etc/mtab内,含有quota支持的文件系统,加上此参数后,/mount_point可不必写,因为扫描所有的文件系统了
-u: 针对用户扫描文件与目录的使用情况,会新建aquota.user
-g: 针对用户组扫描文件与目录的使用情况,会新建aquota.group
-v: 显示扫描过程的信息
#quotacheck -avug //创建配置文件
#ll -d /home/a* //查看配置文件
#quotacheck -avug -mf //强制扫描已挂载的文件系统
3.Quota启动,关闭与限制值设置
#quotaon [-avug]
#quotaon [-vug] [/mount_point]
参数:
-u: 针对用户启动quota (aquota.user)
-g: 针对用户组启动quota (aquota.group)
-v: 显示启动过程的相关信息
-a: 根据/etc/mtab内的文件系统设置启动有关的quota,若不加-a的话,则后面就需要加上特定的那个文件系统
#quotaon -auvg
#quotaon -uv /var
4.关闭quota
#quotaoff [-a]
#quotaoff [-ug] [/mount_point]
-a :全部的文件系统的quota都关闭(根据/etc/mtab)
-u :仅针对后面接的那个/mount_point关闭user quota
-g :仅针对后面接的那个/mount_point关闭group quota
5.编辑账号/用户组的限值与宽限时间
#edquota [-u username] [-g groupname]
#edquota -t <==修改宽限时间
#edquota -p 范本账号 -u 新账号
参数:
-u :后面接账号名称。可以进入quota的编辑界面(vim) 去设置username的限制值
-g :后面接组名。可以进入quota的编辑界面(vim) 去设置groupname的限制
-t :可以修改宽限时间
-p :复制范本。那个模板账号为已经存在并且已设置好quota的用户,意义为将范本账号这个人的quota限制值复制给新账号
#edquota -u myquota1
Filesystem blocks soft hard inodes soft hard
/dev/hda3 80 250000 300000 10 0 0 //单位为KB
#edquota -p myquota1 -u myquota2
#edquota -p myquota1 -u myquota3
#edquota -p myquota1 -u myquota4
#edquota -p myquota1 -u myquota5
#edquota -g myquotagrp
Disk quotas for group myquotagrp (gid 713):
Filesystem blocks soft hard inodes soft hard
/dev/hda3 400 900000 1000000 50 0 0
#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/hda3 14days 7days //原来是7days改为14days
6.生成Quota限制值的报表
#quota [-uvs] [username]
#quota [-gvs] [groupname]
-u :后面可以接username,表示显示出该用户的quota限制值。若不接。username,表示显示执行者的quota限制值
-g :后面可接groupname,表示显示出该用户组的quota限制值
-v :显示每个用户在文件系统中的quota值
-s :使用1024为倍数来指定单位,会显示如M之类的单位
#quota -uvs myquota1 myquota2
#quota -gvs myquotagrp
#repquota -a [-vugs]
参数:
-a :直接到/etc/mtab查询具有quota标志的文件系统,并报告quota的结果
-v :输出的数据将含有文件系统相关的详细信息
-u :显示出用户的quota限制(这是默认)
-g :显示出个别用户组的quota限值
-s :使用M,G为单位显示结果
#repquota -auvs //查询所有用户的quota限制情况
7.测试与管理
测试一:利用myquota1身份,创建一个270M的大文件
#su - myquota1
$dd if=/dev/zero of=bigfile1 bs=1M count=270
$su - root
#repquota -auv
测试二:利用myquota1身份,在创建另外一个大文件,让总容量超过300MB
$dd if=/dev/zero of=bigfile2 bs=1M count=300
$du -sk
#repquota -au
8.warnquota对超出限额者发出警告信息
#warnquota //会发出两封邮件,一封给超出限制值的用户,一封给root
#mail
&N
&exit
#vim /etc/warnquota.conf
给定时扫描并发警告
#vim /etc/cron.daily/warnquota
/usr/sbin/warnquota
#chmod +x /etc/cron.daily/warnquota
9.#setquota [-u|-g] name block(soft) block(hard) inode(soft) inode(hard) 文件系统
#quota -uv myquota5 //查myquota5限值
Disk quotas for group myquotagrp (gid 714):
Filesystem blocks quota limit grace files quota limit grace
/dev/hda3 80 250000 300000 10 0 0
#setquota -u myquota5 100000 200000 0 0 /home
#quota -uv myquota5
Disk quotas for group myquotagrp (gid 714):
Filesystem blocks quota limit grace files quota limit grace
/dev/hda3 80 100000 200000 10 0 0
10不改动既有系统的Quota,使邮件主机也有一定的限额
1.将/var/spool/mail这个目录完整地移动到/home下面
2.利用ln -s /home/mail /var/spool/mail来新建连接数据
3.将/home进行quota限额设置
注意:以上测试要关闭selinux,或者修该selinux规则。