首先,我们先学习下linux系统的磁盘配额限制的基本概念 linux系统的磁盘配额限制有两种,一种是软限额,一种是硬限额。 软限额顾名思义就是比较不那么严格,在一定时间内可以超出限制,在记时器超时之前没有减少已分配空间的话,才会激发起限额。硬限额是立即生效的,在一个磁 盘上,用户超过了限额大小的话,就立即限制了,而且会被指出它们的运行超出空间了。磁盘限额机制可以根据要求来打开或者关闭,而且能按用户或者组来施行。 soft limit :{zd1}限制容量,在宽限期(grace period)之内,使用容量可以超过soft limit,但必须在宽限期之内将使用容量降低到soft limit以下。 hard limit :最终限制容量,如果使用者在宽限期内继续写入数据,到达hard limit将无法再写入。 宽限时间:使用容量超过soft limit,宽限时间自动启动,使用者将容量降低到soft limit以下,宽限时间自动关闭,如果使用者没有在宽限时间内将容量降低到soft limit,那么他将无法再写入数据,即使使用容量没有到达hard limit linux 磁盘配额的配置方法 首先安装quota 软件包 1. # vim /etc/fstab (修改配置文件) /dev/VolGroup00/LogVol00 / ext3 defaults,usrquota,grpquota 1 1 ------------------ quota是针对单分区进行磁盘配额限制的,如果想针对某个目录进行限制,必须把该目录单独挂到一个 分区中 2. # reboot (重启电脑初始化) 3. # quotacheck -cmug / (在根目录下生成配额文件) 4. 设置配额文件: # edquota -u abc(用户) # edquota -g 500(组名) (磁盘系统) (当前磁盘容量KB) (当前文件数) Filesystem blocks soft hard inodes soft hard /dev/sda1 897 2000 3000 22 39 50 ---------------------------------------------- soft limit :{zd1}限制容量,在宽限期(grace period)之内,使用容量可以超过soft limit,但必须在 宽限期之内将使用容量降低到soft limit以下,否则宽限时间到期后将无法写入数据。 hard limit :最终限制容量,如果使用者在宽限期内继续写入数据,到达hard limit将无法再写入。 blocks:当前使用的磁盘容量,单位KB。 inodes:当前使用的文件数,如果不想限制文件数量,把它后面的soft和hard选项设为0。 5.#edquota -t (修改宽限时间) 默认宽限时间为7天 6. # quotaon / (启用磁盘配额) # quota -u abc(查看用户配额) # repquota -a (查看所有用户磁盘配额使用情况) # quota -g abc(查看组配额) # edquota -p 用户1 用户2 (复制用户1的磁盘配额限制到用户2) 7.同时复制给多个用户: #edquota -p abc `awk -F: '$3 >499 {print $1}' /etc/passwd` 这样就将abc的磁盘配额资料复制给所有uid >499的用户(uid为500以上的用户通常为真实用户) 8.{zh1}加在启动脚本里,系统启动时自动启动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 通常发行版在系统启动/关闭时都会处理quota,在系统启动信息看到相关信息。 例如RedHat RHEL4,Mandrake 10.1系统启动/关闭时有这样两行: Turning on user and group quotas for local filesystems: (/etc/rc.d/rc.sysinit) Turning off quotas: (/etc/rc.d/rc0.d/S01halt /etc/rc.d/rc6.d/S01reboot) |