文章出处: http://blog.chinaunix.net/u3/92464/showart.php?id=1845533
账号配额设置
当系统上新增账号之后,可能会针对账号设置可使用的硬盘空间,以便于管理以及避免资源的浪费,下面就针对设置做介绍。
要使用配额限制(Quota),必须确认三件事:
1.文件系统格式是否支持quota support﹔
2.内核是否支持Quota support﹔
3.是否安装了quota的软件包。
范例7-5. 设置账号superman在根目录的容量上限为30000KBytes
Step1.修改 /etc/fstab
在/home所在的那行:defaults后面加上逗点,再加上usrquota,如下所示:
/dev/VolGroup00/LogVol00 / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
devpts /dev/pts devpts gid=5,mode=620 0 0
tmpfs /dev/shm tmpfs defaults 0 0
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
LABEL=/home /home ext3 defaults
,usrquota1 2
/dev/VolGroup00/LogVol01 swap swap defaults 0 0
Step2.重新启动计算机
启动后,我们可以看看/etc/mtab的内容/home后有没有usrquota的字样。
[root@localhost home]# cat /etc/mtab
/dev/mapper/VolGroup00-LogVol00 / ext3 rw 0 0
proc /proc proc rw 0 0
sysfs /sys sysfs rw 0 0
devpts /dev/pts devpts rw,gid=5,mode=620 0 0
/dev/sda1 /boot ext3 rw 0 0
/dev/sda6
/home ext3 rw,usrquota 1 2
tmpfs /dev/shm tmpfs rw 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0
sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw 0 0
Step3.使用quotacheck检查/home这个文件系统
[root@localhost ~]#
quotacheck -uvg /home
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/sda3 [/home] done
quotacheck: Cannot stat old user quota file: 没有那个文件或目录
quotacheck: Cannot stat old user quota file: 没有那个文件或目录
quotacheck: Checked 212 directories and 677 files
quotacheck: Old file not found.
quotacheck: Old file not found.
第一次使用quotacheck时,会新增aquota.user这个文件,如下所示:
[root@localhost ~]# ll /home/
总计 48
-rw------- 1 root root 8192 12-30 22:53 aquota.user
drwx------ 2 root root 16384 12-03 17:22 lost+found
drwx------ 5 mmp mmp 4096 12-30 20:27 mmp
drwxr-xr-x 5 mmp3 mmp3 4096 12-24 15:58 mp3
drwx------ 33 superman superman 4096 12-29 23:55 superman
新增这两个文件后,再执行quotacheck就不会出现错误信息了。
Step4. 对账号superman设置配额限制quota,以K为单位。
执行
edquota -u superman
Disk quotas for user superman (uid 501):
Filesystem blocks soft hard inodes soft hard
/dev/sda3 72 20000 30000 9 0 0
这有两个数值:soft=20000KB和hard=30000KB,所谓hard是账号所能储存容量的上限,超过这个值就不能再存入,而soft则是警告的上限,超过这个数值,系统会对账号提出警告,若是超过grace time(设置方式见Step5),容量仍超过soft,则不得再写入。执行完毕后可输入“:wq”储存后离开。(与vi【vi的使用方式可参阅】的操作方式相同)
Step5.设置grace time“可不设置,使用默认值”
设置宽限的时间,单位为日数。
执行
edquota -ut
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/sda3 7days 7days
最后,使用repquota -a看看设置,如下所示:
[root@localhost ~]# repquota -a
[*** Report for user quotas on device /dev/sda3
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 141844 0 0 5 0 0
superman +- 1388 20000 30000 6days 413 0 0
mmp -- 36 0 0 9 0 0
Step6.最后,使用quotaon启动quota
[root@fedora ~]#
quotaon -av
/dev/sda3 [/home]: user quotas turned on
设置到此,就完成了,最后,我们可以让账号superman登录并测试quota设置是否生效。由于刚刚设置的上限为30000KB(约30MB),因此我们可以复制一个大于30MB的文件,则会出现错误信息,如下所示:
[superman@localhost ~]$ ll /tmp/ww
-rw-r--r-- 1 root root 41643834 12-30 23:06 /tmp/ww 一个大文件
[superman@localhost ~]$ cp /tmp/ww ./复制到本地
cp: 写入 “./ww”: 超出磁盘限额
回到root登录并使用repquota -a再看看设置,则会发现superman在used的字段与hard相同,代表容量已满。
[root@localhost ~]# repquota -a
[*** Report for user quotas on device /dev/sda3
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 141844 0 0 5 0 0
superman +- 30000 20000 30000 6days 413 0 0
mmp -- 36 0 0 9 0 0
范例11-6.将范例11-5的设置套用到其它的账号mmp
命令如下:
edquota -p superman mmp
执行程序如下图所示:
[root@localhost ~]# repquota -a
[*** Report for user quotas on device /dev/sda3
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 141844 0 0 5 0 0
superman +- 30000 20000 30000 6days 413 0 0
mmp -- 36 0 0 9 0 0←改变前
[root@fedora ~]# edquota -p superman mmp
[root@fedora ~]# repquota -a
*** Report for user quotas on device /dev/sda3
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 141844 0 0 5 0 0
superman +- 30000 20000 30000 6days 413 0 0
mmp -- 36 20000 30000 9 0 0←改变后