一:内核中支持QUOTA:
[root@localhost/]#grepCONFIG_QUOTA/boot/config-3.10.0-123.el7.x86_64
CONFIG_QUOTA=y
CONFIG_QUOTA_NETLINK_INTERFACE=y
#CONFIG_QUOTA_DEBUGisnotset
CONFIG_QUOTA_TREE=y
CONFIG_QUOTACTL=y
CONFIG_QUOTACTL_COMPAT=y
如果有上列输出,则表示当前内核已经支持quota。
二:修改/etc/fstab加入QUOTA支持:
[root@localhost/]#vim/etc/fstab
/dev/sdb1/dvdxfsdefaults,usrquota,grpquota12
三:使用quotacheck初始化QUOTA数据库:
因为quotacheck依据/etc/mtab搜索文件系统,所以要将刚刚修改的/dev/sdb1重新挂载
[root@localhost/]#mount/dvd-oremount
[root@localhost/]#mount
procon/proctypeproc(rw,nosuid,nodev,noexec,relatime)
sysfson/systypesysfs(rw,nosuid,nodev,noexec,relatime,seclabel)
devtmpfson/devtypedevtmpfs(rw,nosuid,seclabel,size=926912k,nr_inodes=231728,mode=755)
securityfson/sys/kernel/securitytypesecurityfs(rw,nosuid,nodev,noexec,relatime)
tmpfson/dev/shmtypetmpfs(rw,nosuid,nodev,seclabel)
devptson/dev/ptstypedevpts(rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000)
tmpfson/runtypetmpfs(rw,nosuid,nodev,seclabel,mode=755)
tmpfson/sys/fs/cgrouptypetmpfs(rw,nosuid,nodev,noexec,seclabel,mode=755)
cgroupon/sys/fs/cgroup/systemdtypecgroup(rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)
pstoreon/sys/fs/pstoretypepstore(rw,nosuid,nodev,noexec,relatime)
cgroupon/sys/fs/cgroup/cpusettypecgroup(rw,nosuid,nodev,noexec,relatime,cpuset)
cgroupon/sys/fs/cgroup/cpu,cpuaccttypecgroup(rw,nosuid,nodev,noexec,relatime,cpuacct,cpu)
cgroupon/sys/fs/cgroup/memorytypecgroup(rw,nosuid,nodev,noexec,relatime,memory)
cgroupon/sys/fs/cgroup/devicestypecgroup(rw,nosuid,nodev,noexec,relatime,devices)
cgroupon/sys/fs/cgroup/freezertypecgroup(rw,nosuid,nodev,noexec,relatime,freezer)
cgroupon/sys/fs/cgroup/net_clstypecgroup(rw,nosuid,nodev,noexec,relatime,net_cls)
cgroupon/sys/fs/cgroup/blkiotypecgroup(rw,nosuid,nodev,noexec,relatime,blkio)
cgroupon/sys/fs/cgroup/perf_eventtypecgroup(rw,nosuid,nodev,noexec,relatime,perf_event)
cgroupon/sys/fs/cgroup/hugetlbtypecgroup(rw,nosuid,nodev,noexec,relatime,hugetlb)
configfson/sys/kernel/configtypeconfigfs(rw,relatime)
/dev/sda3on/typexfs(rw,relatime,seclabel,attr2,inode64,noquota)
selinuxfson/sys/fs/selinuxtypeselinuxfs(rw,relatime)
systemd-1on/proc/sys/fs/binfmt_misctypeautofs(rw,relatime,fd=32,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)
hugetlbfson/dev/hugepagestypehugetlbfs(rw,relatime,seclabel)
debugfson/sys/kernel/debugtypedebugfs(rw,relatime)
mqueueon/dev/mqueuetypemqueue(rw,relatime,seclabel)
sunrpcon/var/lib/nfs/rpc_pipefstyperpc_pipefs(rw,relatime)
sunrpcon/proc/fs/nfsdtypenfsd(rw,relatime)
/dev/sda1on/boottypexfs(rw,relatime,seclabel,attr2,inode64,noquota)
/dev/sdb1on/dvdtypeext2(rw,relatime,seclabel,quota,usrquota,grpquota)
[root@localhost/]#quotacheck-avug
quotacheck:Quotaforusersisenabledonmountpoint/dvdsoquotacheckmightdamagethefile.
Pleaseturnquotasofforuse-ftoforcechecking.
-a:扫描所有在/etc/mtab中开启quota的文件系统
-v:显示扫描过程
-u:扫描所有userquotas(usrquota)
-g:扫描所有groupquotas(grpquota)
四:启动QUOTA:(quotaon为启动quotaoff为关闭)
[root@localhost/]#quotaon-avug
/dev/sdb1[/dvd]:groupquotasturnedon
/dev/sdb1[/dvd]:userquotasturnedon
-a:开启所有quota设定,根据/etc/mtab设定
-v:当开启quota时显示信息
五:编辑用户磁盘限额:
这里设定用户quota最大使用容量为20M,当使用到10M时会得到警告要求降低到10M最多可以创建10个文件,当创建5个文件时会得到警告要求降低到5个文件
[root@localhost/]#edquota-uredhat(redhat为系统用户名称)
Diskquotasforuserredhat(uid1000):
Filesystemblockssofthardinodessofthard
/dev/sdb1000000
改为
Diskquotasforuserredhat(uid1000):
Filesystemblockssofthardinodessofthard
/dev/sdb1010240204800510
-u:编辑user的quota
-g:编辑group的quota
-t:编辑宽限时间
-p:复制quota资料到另一用户上
blocks:目前使用者(quota:uid=5011)在/dev/hda7所使用的空间,单位:KB(不要修改)
soft:softlimit磁盘空间限定值单位:KB(需要设定)
hard:hardlimit磁盘空间限定值单位:KB(需要设定)
inodes:目前使用者使用掉的inodes,由于不容易使用inode控制,所以不要修改它。
soft:softlimit文件限制数量(根据需要修改)
hard:hardlimit文件限制数量(根据需要修改)
softlimit:最低限制容量,在宽限期(graceperiod)之内,使用容量可以超过softlimit,但必须在宽限期之内将使用容量降低到softlimit以下。
hardlimit:最终限制容量,如果使用者在宽限期内继续写入数据,到达hardlimit将无法再写入。
宽限时间:使用容量超过softlimit,宽限时间自动启动,使用者将容量降低到softlimit以下,宽限时间自动关闭,如果使用者没有在宽限时间内将容量降低到softlimit,那么他将无法再写入数据,即使使用容量没有到达hardlimit
六.设定宽限时间:
[root@localhostdvd]#edquota-t
Graceperiodbeforeenforcingsoftlimitsforusers:
Timeunitsmaybe:days,hours,minutes,orseconds
FilesystemBlockgraceperiodInodegraceperiod
/dev/sdb17days7days
[root@localhostdvd]#quota-uvredhat(-u:显示user。-v:显示quota值)
Diskquotasforuserredhat(uid1000):
Filesystemblocksquotalimitgracefilesquotalimitgrace
/dev/sdb1010240204800510
七.使用-p参数复制quota资料到另一个用户:
[root@localhostdvd]#edquota-predhataaa
[root@localhostdvd]#quota-uvaaa
Diskquotasforuseraaa(uid1001):
Filesystemblocksquotalimitgracefilesquotalimitgrace
/dev/sdb1010240204800510
同时复制给多个用户:
[root@localhostdvd]#edquota-predhat`awk-F:'$3>499{print$1}'/etc/passwd`
这样就将quota的磁盘配额资料复制给所有uid>499的用户(uid为500以上的用户通常为真实用户)
八.系统启动时自动激活quota:
可以加入到/etc/rc.d/rc.sysinit或/etc/rc.d/rc.local中,在结尾加上一行:/usr/sbin/quotaon-aug
还要记得在系统关机/重启脚本(/etc/rc.d/rc[0,6]/)中加入关闭quota的语句:/usr/sbin/quotaoff-aug
九.查询磁盘配额:
[root@localhostdvd]#repquota-a
***Reportforuserquotasondevice/dev/sdb1
Blockgracetime:24:00;Inodegracetime:7days
BlocklimitsFilelimits
Userusedsofthardgraceusedsofthardgrace
----------------------------------------------------------------------
root--2000200
十.计划任务quotcheck:
quotcheck用来扫描文件系统的磁盘用量,更新aquota.user,aquota.group保持quota记录档到最新的状态。因此最好在系统启动时执行或通过cron定期执行:
每周六早七点执行一次:07**6/sbin/quotacheck-avug
|