A、磁盘配额作用限制普通用户使用磁盘空间,不至于因为个别人的浪费而影响到其它人的正常使用;
B、需要内核的支持;
C、只有
Ext2/Ext3
文件系统目前支持这种功能;
D、需要用户程序
quota
软件包
.
磁盘配额配置过程
1)、使用
usrquota
,
grpquota
选项挂载一个分区,激活内核的支持(只能在分区上做)
2)、方法:
#mount �Co usrquota,grpquota /dev/sdb1 /mnt/d1
或
mount �Co remount,usrquota,grpquota / (
因为根目录已经挂载过,可重新挂载
)
3)、
init 1
(进入单用户环境来配置)
4)、
quotacheck �Ccvuga
检查并创建磁盘配额的数据库文件(存放位置:在每一个分区的根目录下面)
-c
:
创建
create
;
�Cv
:更详细地表述;
�Cu
:用户
user
;
�Cg
:组
group
;
-a
:所有
all
5)、
edquota �Cu
为指定用户分配磁盘空间和节点数量
6)、
quota
命令可以查看用户的配额使用情况
如:
[root@localhost root]# ls /mnt
cdrom floppy
[root@localhost root]# mkfs.ext3 /dev/sdb1 /mnt/sd1/
mke2fs 1.32 (09-Nov-2002)
mkfs.ext3: bad blocks count - /mnt/sd1/
[root@localhost root]# mkfs.ext3 -f /dev/sdb1 /mnt/sd1/
[root@localhost root]# fdisk -l
Disk /dev/sda: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 652 5237158+ 83 Linux
Disk /dev/sdb: 4294 MB, 4294967296 bytes
255 heads, 63 sectors/track, 522 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 250 522 2192872+ 83 Linux
[root@localhost root]# mkfs.ext3 /dev/sdb1
mke2fs 1.32 (09-Nov-2002)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
274176 inodes, 548218 blocks
27410 blocks (5.00%) reserved for the super user
First data block=0
17 block groups
32768 blocks per group, 32768 fragments per group
16128 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 30 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@localhost root]# mount /dev/sdb1 /mnt/sd1 -o usrquota,grpquota
[root@localhost root]# mount
/dev/sda1 on / type ext3 (rw)
none on /proc type proc (rw)
usbdevfs on /proc/bus/usb type usbdevfs (rw)
none on /dev/pts type devpts (rw,gid=5,mode=620)
none on /dev/shm type tmpfs (rw)
/dev/sdb1 on /mnt/sd1 type ext3 (rw,usrquota,grpquota)
[root@localhost root]# more /etc/mtab
/dev/sda1 / ext3 rw 0 0
none /proc proc rw 0 0
usbdevfs /proc/bus/usb usbdevfs rw 0 0
none /dev/pts devpts rw,gid=5,mode=620 0 0
none /dev/shm tmpfs rw 0 0
/dev/sdb1 /mnt/sd1 ext3 rw,usrquota,grpquota 0 0
[root@localhost root]# quotacheck �Ccvuga <-------
quotacheck: Scanning /dev/sdb1 [/mnt/sd1] done
quotacheck: Checked 2 directories and 0 files
[root@localhost root]# ls /mnt/sd1/
aquota.group aquota.user lost+found
aquota.group
和
aquota.user
两个数据文件,用来分配组和用户的配额情况。
[root@localhost root]# quotaon
或
reboot
或
quotaon /dev/sdb1
[root@localhost root]# edquota -u redhat
Disk quotas for user redhat (uid 502):
Filesystem blocks soft hard inodes soft hard
/dev/sdb1 125 10 0 80 0 10
注:
blocks
表示:块的数量;
inodes
表示:节点的数量或建立文件的个数;
soft
表示:软限制,可以超过这个数值的设定,但是有天数限制;
hard
表示:硬限制,这是一个任何时候也不能超过的数值,永远不可能达到。
[root@localhost root]# \ls /mnt/sd1
aquota.group aquota.user lost+found
[root@localhost root]# mkdir /mnt/sd1/redhat
[root@localhost root]# chown redhat /mnt/sd1/redhat/
[root@localhost root]# su - redhat
[redhat@localhost redhat]$ pwd
/home/redhat
[redhat@localhost redhat]$ cd /mnt/sd1/redhat/
[redhat@localhost redhat]$ pwd
/mnt/sd1/redhat
[redhat@localhost redhat]$ quota
Disk quotas for user redhat (uid 502):
Filesystem blocks quota limit grace files quota limit grace
/dev/sdb1 4 10 0 1 0 9
[redhat@localhost redhat]$ ls -lh
total 8.0K
drwxrwxr-x 2 redhat redhat 4.0K Mar 12 22:41 dir
drwxrwxr-x 2 redhat redhat 4.0K Mar 12 22:41 dir1
[redhat@localhost redhat]$ ls -ld
drwxr-xr-x 4 redhat root 4096 Mar 12 22:41 .
[redhat@localhost redhat]$ dd if=/dev/zero of=file1 bs=1k count=1024
1024+0 records in
1024+0 records out
[redhat@localhost redhat]$ quota -u redhat
Disk quotas for user redhat (uid 502):
Filesystem blocks quota limit grace files quota limit grace
/dev/sdb1 1040* 10 0 6days 4 0 9
[redhat@localhost redhat]$ touch file1
[redhat@localhost redhat]$ touch file2
[redhat@localhost redhat]$ touch file3
[redhat@localhost redhat]$ touch file4
[redhat@localhost redhat]$ touch file5
[redhat@localhost redhat]$ ls
file1 file2 file3 file4 file5
[redhat@localhost redhat]$ quota -u redhat
Disk quotas for user redhat (uid 502):
Filesystem blocks quota limit grace files quota limit grace
/dev/sdb1 1032* 10 0 6days 6 0 9
[redhat@localhost redhat]$ touch file6
[redhat@localhost redhat]$ touch file7
[redhat@localhost redhat]$ touch file8
[redhat@localhost redhat]$ touch file9
sd(8,17): write failed, user file limit reached.
touch: creating `file9': Disk quota exceeded
[redhat@localhost redhat]$ touch file10
touch: creating `file10': Disk quota exceeded
[redhat@localhost redhat]$ quota -u redhat
Disk quotas for user redhat (uid 502):
Filesystem blocks quota limit grace files quota limit grace
/dev/sdb1 1032* 10 0 6days 9* 0 9
[redhat@localhost redhat]$ cat /etc/fstab
LABEL=/ / ext3 defaults 1 1
none /dev/pts devpts gid=5,mode=620 0 0
none /proc proc defaults 0 0
none /dev/shm tmpfs defaults 0 0
/dev/cdrom /mnt/cdrom udf,iso9660 noauto,owner,kudzu,ro 0 0
/dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0
/dev/sdb5 /mnt/sdb5 ext3 defaults 0 0
[root@localhost root]# repquota -a
*** Report for user quotas on device /dev/sdb1
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 20 0 0 2 0 0
redhat +- 1032 10 0 7days 9 0 9
#quotaoff /mnt/sdb1
#edquota �Cu redhat
如果要永久用配额限制的话,可以手动编辑
/etc/fstab
增加:
/dev/sdb1 /mnt/sb1 ext3 defaults,usrquota,grpquota 0 0
保存退出!
取消磁盘配额的方法:
1
)、使用命令
quotaoff �Ca
关闭对应磁盘分区上的配额文件
2
)、可编辑
/etc/fstab
文件
3
)、删除
/mnt/sd1
目录下的
aquota.usr
、
aquota.group
两个数据库文件
.