最近在搞VPS,要用到磁盘的限额,在网上找了一些相关的资料,总结起来,有两个方法能实现,一是用quota,另外一种是限制目录大小,下面我就将这两种方法写出来,与大家一起分享!
首先我们来看第一种方法,用quota实现。
步骤:
1、挂载需要限额的磁盘
mount -o usrquota,grpquota /dev/sdb1 /mnt/sd1
针对普通磁盘
mount -o remount,usrquota /
这个是针对根分区
2、检查并创建磁盘配额的数据库文件
quotacheck -camugv
c创建,
v创建过程的详细信息,
u对用户的配额支持,
g对组的配额支持,
a表示激活所有配额的磁盘分区,
m只在对根分区创建的时候使用。
注:以上参数根据自己的情况而定
3、开启磁盘配额
quotaon -a
4、配置用户或组的限额的大小
edquota -u user (-g group)
5、查看用户或组的限额情况
quota -uv user (-gv group)
6、查看系统的配额情况
repquota -augv
注:以上5、6步,根据自己的情况来操作,当然,也可以不用查看,但前提是你确定配置是没有问题的!
7、将磁盘的挂载参数写入fstab,确保在系统下次启动的时候,能加载配额功能
defaults,usrquota,grpquota
至此,磁盘配额完成,为了大家更好的理解配置的时候的参数,我把编辑用户和组的各字段含义,贴出来,希望参大家用帮助。
FIlesystem:表示文件系统,即需要设置配额的硬盘分区;
block:表示所占的字节数,单位:KB (不要修改)
soft:磁盘空间限定值 单位:KB (需要设定)
hard:磁盘空间限定值 单位: KB (需要设定)
inodes:i节点数,用户拥有文件的文件的数目 (不要修改)
soft:文档限制数量 (根据需要修改)
hard:文档限制数量 (根据需要修改)
如果说,你不想使用磁盘配额了,就用quotaoff -a 关闭quota(删除/etc/mtab)、删除用户或组的数据库文件,修改/etc/fstab参数。
下面我们来看另外一种方法,限制目录的大小
主要的思路是通过dd命令COPY出你需要的大小,然后挂载到一个目录下使用。
步骤
1、copy出相应的文件大小,比如1G
dd if=/dev/zero bs=1024 count=1000000 of=/1Gfile.loop
2、对此文件进行格式化
mkfs.ext3 /1Gfile.loop
3、建立目录
mkdir /1Gdir
4、挂载使用
mount -o loop /1Gfile.loop /1Gdir
5、为了确保在系统启动的进时也要挂载,就要在/etc/rc.local最后增加
mount -o loop /1Gfile.loop /1Gdir
以上两种方法的优点和缺点
磁盘配额优点:不会先占用磁盘的空间
磁盘配额缺点:只针对磁盘用效,而且必须是针对用户和组的
限制目录大小优点:方便灵活,适用性强。但具体的性能如何,没有测试
限制目录大小缺点:在建立之初就占相应大小的磁盘空间
大家可以根据自己的情况,来选择适合自己的方法!