由 syd168 在 08-09-2004 17:45 发表:
RH AS3 上快速实现磁盘配额。
>
> 源码:
>
> * * *
>
>
> >
> 在多用户的情况下,为了对用户实现个性化管理,不仅从权限进行管理,用户的可用空间或可创建的文件数也往往是需要管理的,
> >
> 否则,可能有些用户把服务器当自己备份设备了。
> >
> 实现用户磁盘使用量的限制就是所谓的磁盘配额(quota),Windows中也有,似乎更好配置。Linux下的配置应该不太难。
> >
> 我常用Redhat Linux ,所以以下的实验都建立在Redhat基础上,相信其他的Linux应该类似。
> >
> (一)Linux配额基础
> >
> Linux中的磁盘配额分为用户配额和组的配额,组的配额是对某组中全体用户的综合限制。
> >
> Linux 中的磁盘配额按是否可有一定的超越又分为软限制(可以超越)和硬限制(禁止超越)
> >
> Linux中的磁盘配额按限制的项目不同,可分为空间限制(blocks 大小)和文件数限制(inodes 个数,与软硬连接无关)。
> >
> (二)Red Hat linux as 3 磁盘配额的实现
> >
> 1)修改/etc/fstab中的某文件系统行,在挂载选项中添加usrquota,grpquota,如下一例:
> >
> /dev/sda5 /mnt/sda5 ext3 defaults,usrquota,grpquota 0 0
> >
> 简单说明:usrquota表示支持用户级配额,grpquota表示支持组级的配额
> >
> 2)重新挂载刚才修改的文件系统 ,使其支持配额
> >
> #mount -o remount /dev/sda5
> >
> 3)运行quotacheck在支持配额文件系统下生成配额管理文件
> >
> #quotacheck -avug /dev/sda5
> >
> 简单说明:a-自动开启挂载文件系统的配额,v-显示信息,u-启用用户配额,g-启用组配额
> >
> 4)用edquota完成用户或组配额设置/修改
> >
> #edquota user1 [-f /dev/sda5]
> >
> #edquota -g group1 [-f /dev/sda5]
> >
> 简单说明:第一行是设置用户user1的配额限制
> >
> 第二行是设置组group1的配额限制
> >
> [-f /dev/sda5]表可选,不选表示在所有启用磁盘配额的系统上使用相同的配额设置,一般不选即可。
> >
> 配额格式说明:
> >
> filesystem blocks soft hard inodes soft hard
> >
> filesystem-正在设置的文件系统,不要修改或删除!
> >
> bolock-当前已经使用的磁盘空间
> >
> soft(第一个)-软磁盘空间限制,可以有7天(默认)的超越,表示用户可以使用的磁盘空间大小,单位为字节
> >
> hard(第一个)-硬配额限制,不能超越,表示用户可以使用的最大磁盘空间,单位为字节
> >
> inodes-当前文件个数
> >
> soft(第二个)-软磁盘空间限制,可以有7天(默认)的超越,表示用户可以创建的文件个数,包括目录,可以有默认七天的超越
> >
> hard(第二个)-硬配额限制,不能超越,表示用户可以创建的文件个数,不能超过。
> >
> 5)打开磁盘配额监控进程
> >
> #quotaon -avug [/dev/sda1]
> >
> 到此为止,磁盘配额已经完成。那么我们如何知道配额的使用情况呢?
> >
> 6)显示磁盘配额使用状态
> >
> #repquota -a 或 repquota /dev/sda1
> >
> #repquota -g -a 或 repquota -a /dev/sda2 (组的配额)
> >
> 7)暂时关闭某个文件系统的配额
> >
> #quotaoff -avug 停止所有所有文件系统的用户和组的配额
> >
> 8)取消某个文件系统的配额限制
> >
> #quotaoff -vug 文件系统
> >
> #删除/etc/fstab中设置配额的部分
> >
> 9)修改软配额的最大超越时间
> >
> #edquota -t [-g] 修改用户/配额软配额超越的最大天数,也就是用户超过soft的限制后,系统允许在设定的时间范围内继续