当前位置:操作系统 > Unix/Linux >>

quota

实现配额

  首先保证已经安装 quota, 然后在fstab中对需要限额的分区进行设置

  比如我们对 /home 磁盘配额, fstab 就应该类似如下:

  /dev/hda5 /home ext2 rw,userquota,groupquota 1 2

  上边的

  /dev/hda5 就是我的 /home 对应的磁盘分区

  /home 是挂载点

  rw 是表示可读写

  userquota 是表示对用户进行配额

  groupquota 是表示对用户组群进行配额

  接着编辑 /etc/rc.d/rc.local, 加上

  代码:

  if [-x /sbin/quotacheck ];then

  echo "Checking quotas,This may take some time ... "

  /sbin/quotacheck -avug

  echo "Done."

  fi

  if[ -x /sbin/quotaon ];then

  echo "Enabling disk quota ... "

  /sbin/quotaon -avug

  echo "Done."

  fi

  最后在对应的目录下创建配额文件,比如我上边的实例中就应该为 /home/quota.user 和 /home/quota.group, 分别对应用户配额和用户组群配额, 更像细的资料应该参考 fstab 的man

  不过我参考 freebsd 中的内容,似乎也可以在 /etc/ 下创建 quota.user 和 quota.group 来对用户全局磁盘配额进行限制,你可以试试

  不管磁盘空间有多么大,磁盘空间不够使用似乎是一个永远的事实。Linux提供了限制用户磁盘空间的手段,以便促使每个用户合理有效地使用分配给他的空间。用户磁盘空间的限制是以文件系统(分区)为单位,而不理会用户文件放在该文件系统中的哪个目录中。

  1. 修改 /etc/fstab 文件.在文件系统相应的 mount 命令行中加入限额选项(如下的例子)。

  /dev/hda7 /home ext2 defaults,usrquota,grpquota 1 2

  2. 重新装载 Linux 分区,例如:

  [root@fileserver root]# mount -o remount /home

  继续。

  3. 在欲加磁盘限额的文件系统的安装点目录建立 aquota.user 和 aquota.group 文件:

  [root@fileserver root]# cd /home (/home 为单个分区 /dev/hda7 的装载点)

  [root@fileserver home]# touch aquota.user (为用户设置磁盘限额)

  [root@fileserver home]# touch aquota.group (为用户组设置磁盘限额)

  这时生成 的 aquota.user 和 aquota.group 是空的,不符合系统的要求。

  请看下一步。

  4. 生成符合系统要求的 aquota.user 和 aquota.group

  [root@fileserver home]# quotacheck /home/ (生成符合系统要求 的 aquota.user)

  [root@fileserver home]# quotacheck -g /home/ (生成符合系统要求 的 aquota.group)

  生成时,有错误提示。这不要紧。因为 先前 touch 生成的是一个空文件,肯定格式不对。

  在这时,对于 ext3 文件系统,可能“不得不”运行这个命令:

  [root@fileserver home]# quotacheck -m [-u] /dev/hda7

  [root@fileserver home]# quotacheck -m -g /dev/hda7

  这样 正确的 aquota.user 和 aquota.group 生成啦。

  继续下一步:

  5. 为用户设置磁盘空间限额:

  [root@fileserver home]# edquota [-u] user_name

  [root@fileserver home]# edquota -g group_name (对于用户组)

  本命令开启一个 vi 窗口,为用户设置磁盘空间和i节点数目的限额.其中 soft 限额为一个临时性的限额;hard 限额为一个永久性限额(soft 限额可略大于 hard 限额),编辑方法与 vi 完全相同,以 ZZ 或 :wq 命令退出.如要给若干用户 user1, user2,user3 指定相同的磁盘限额,可用下面的命令给这些用户赋予与 protuser 相同的限额:

  [root@fileserver home]# edquota [-u] -p protuser user1 user2 user3

  [root@fileserver home]# edquota -g -p protgroup group1 group2 group3

  设定soft quota和hard quota之间的时间:

  [root@fileserver home]# edquota -t

  出现一个 vi 窗口:

  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/hda7 7days 7days

  修改成自己所需要的,并保存退出就设置这个时间啦。

  您在这之后可能需要重新启动,以使磁盘限额生效。

  您可以啦,不过还要注意一些问题,请继续看下去。

  6. 检查磁盘空间限制的一致性,系统会自动每次重新启动时,在检查硬盘后进行( /etc/rc.sysinit ),无须您亲手进行。

  假若 分区 已经以“读写”方式挂上时,您要小心,例如:

  [root@fileserver root]# quotacheck /home

  quotacheck: Quota for users is enabled on mountpoint /home so quotacheck might damage the file.

  Please turn quotas off or use -f to force checking.

  7. 以后您如果要取消磁盘空间和i节点数目的限制,可用以下命令,请看:

  [root@fileserver root]# quotaoff /home (取消磁盘空间限制。)

  [root@fileserver root]# quotaon /home (现在启动磁盘空间限制。)

  [root@fileserver root]# quotaon /home (已经启动磁盘空间限制啦,所以出现以下错误:)

  quotaon: using /home/aquota.group on /dev/hda7: Device or resource busy

  quotaon: using /home/aquota.user on /dev/hda7: Device or resource busy
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,