Linux磁盘配额(一)
Linux系统的磁盘配额功能用于限制用户所使用诉磁盘空间,并且在用户使用了过多的磁盘空间或分区的空闲空间过少时,系统管理员会接到警告。
Linux磁盘配额可以针对单独用户进行配置,也可以针对用户组进行配置;配置策略既可以限制占用的磁盘空间,也可以限制文件数量。
quota 常见的几种使用情况:
l 针对WWW
server, 如每个人的网面空间的容量限制。
l 针对Mail
server,如每个人的邮件空间。
l 针对File
server,如每个人的最大的可用网络空间。
quota 中的相关概念:
l 磁盘配额限制:针对用户占用磁盘大小限制与用户拥有的文件数数量限制;
l 软限制与硬限制:
soft :软限制,超出这个限制就会收到警告信息,要比hard小;
hard :硬限制,磁盘空间或文件数量的最大值,绝对不能超这个限制;
l 宽限时间:当用户使用空间大小或文件数量超过了soft limit,但还没达到hard
limit时,这个宽限时间就会启动,当用户将空间大小或文件数量降低到soft
limit之下时,那么宽限时间就会自动取消;
l 用户限制与组限制:Linux磁盘配额可以针对用户或组来进行配额。
quota 相关命令:
1) quota 命令:作用显示磁盘已使用的空间与限制
[root@linux ~]# quota [-uvsl] [username]
[root@linux ~]# quota [-gvsl] [groupname]
参数:
-u :后面可以接 username ,表示显示出该使用者的 quota 限制值。若不接 username ,表示显示出执行者的 quota 限制值。
-g :后面可接 groupname ,表示显示出该群组的 quota 限制值。
-v :显示每个 filesystem 的 quota 值;
-s :可选择以 inode 或磁盘容量的限制值来显示;
-l :仅显示出目前本机上面的 filesystem 的 quota 值。
2) quotacheck 命令:检查磁盘的使用空间与限制
[root@linux ~]# quotacheck [-avug] [/mount_point]
参数:
-a :扫瞄所有在 /etc/mtab 内,含有 quota 支持的 filesystem,加上此参数,/mount_point 可不必写,因为扫瞄所有的 filesystem 了嘛!
-u :针对使用者扫瞄档案与目录的使用情况,会建立 aquota.user
-g :针对群组扫瞄档案与目录的使用情况,会建立 aquota.group
-v :显示扫瞄过程的信息;
-M :『强制』进行 quotacheck 的扫瞄。
3) edquota 命令:编辑用户或群组的quota
[root@linux ~]# edquota [-u username] [-g groupname]
[root@linux ~]# edquota -t <==修改恕限时间
[root@linux ~]# edquota -p username_demo -u username
参数:
-u :后面接账号名称。可以进入 quota 的编辑画面 (vi) 去设定 username 的限制值;
-g :后面接群组名称。可以进入 quota 的编辑画面 (vi) 去设定 groupname 的限制值;
-t :可以修改恕限时间 (就是超过 quota 的 soft limit 值后,还能使用硬盘的宽限期限)
-p :复制范本,将源用户的quota设置套用至其他用户或群组。如[root@linux ~]#
edquota -p user1 -u user2
4) quotaon 命令:开启磁盘空间限制
[root@linux ~]# quotaon [-avug]
参 数:
-a 开启在/ect/fstab文件里,有加入quota设置的分区的空间限制。
-g 开启群组的磁盘空间限制。
-u 开启用户的磁盘空间限制。
-v 显示指令指令执行过程。
-a 开启在/ect/fstab文件里,有加入quota设置的分区的空间限制。
-g 开启群组的磁盘空间限制。
-u 开启用户的磁盘空间限制。
-v 显示指令指令执行过程。
5) quotaoff 命令:关闭磁盘空间限制
[root@linux ~]# quotaoff [-avug]
参 数:
-a 关闭在/etc/fstab文件里,有加入quota设置的分区的空间限制。
-g 关闭群组的磁盘空间限制。
-u 关闭用户的磁盘空间限制。
-v 显示指令执行过程。
-a 关闭在/etc/fstab文件里,有加入quota设置的分区的空间限制。
-g 关闭群组的磁盘空间限制。
-u 关闭用户的磁盘空间限制。
-v 显示指令执行过程。
6)利用 repquota 显示更完整的 quota 结果报告:
[root@linux ~]# repquota -a [-vug]
参数:
-a :直接到 /etc/mtab 搜寻具有 quota 标志的 filesystem ,并报告 quota 的结果;
-v :输出所有的 quota 结果,而非仅下达指令者自己的 quota 限值;
-u :显示出使用者的 quota 限值 (这是默认值);
-g :显示出个别群组的 quota 限值。
Linux磁盘配额实例(二)
磁盘配额的步骤:
1) 修改 /etc/fstab 文件
2) 重新挂载文件系统
3) 创建配额文件
4) 设置配额限制
5) 开启配额限制
6) 设置开机启用quota 配额
1) 修改 /etc/fstab 文件,让分区支持quota,本文针对/home做配额,在第4个字段后面加上
“ ,usrquota,grpquota ” ,其中usrquota是针对用户进行限额,grpquota是针对组进行限额。
[root@linux ~]# vi /etc/fstab
LABEL=/ / ext3 defaults 1 1
LABEL=/home /home ext3 defaults,usrquota,grpquota 1
2
LABEL=/var /var ext3 defaults 1 2
LABEL=/boot /boot ext3 defaults 1 2
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
LABEL=SWAP-hda5 swap swap defaults 0 0
注意:defaults,usrquota,grpquota 三个选项之间都是没有空格的。
2)重新加载文件系统
有两种方法:一就是重新开机(reboot),建议使用;二就是重新挂载文件系统;我这里采用第二种;
[root@rhel5 ~]# df
Filesystem 1K-blocks Used Available Use% Mounted
on
/dev/hda2 10154020 2089060 7540840 22% /
/dev/hda6 50179284 184380 47404828 1%
/home
/dev/hda3 101572572 227760 96102000 1%
/var
/dev/hda1 101086 11006 84861 12%
/boot
tmpfs 127812 0 127812 0%
/dev/shm
[root@rhel5 ~]# umount
/dev/hda6
[root@rhel5 ~]# mount
-a
[root@rhel5 ~]# cat /etc/mtab
/dev/hda2 / ext3 rw 0
0
proc /proc proc rw 0
0
sysfs /sys sysfs rw 0
0
devpts /dev/pts devpts
rw,gid=5,mode=620 0 0
/dev/hda3 /var ext3 rw 0
0
/dev/hda1 /boot ext3 rw 0
0
tmpfs /dev/shm tmpfs rw 0
0
none /proc/sys/fs/binfmt_misc
binfmt_misc rw 0 0
sunrpc /var/lib/nfs/rpc_pipefs
rpc_pipefs rw 0 0
/dev/hda6 /home ext3
rw,usrquota,grpquota 0 0
呵呵。。。已经成功的将 filesystem 的 quota 功能加入了
3) 创建配额文件
[root@rhel5 ~]# ls
/home
kunyuan ky kyhack lost+found user1 user2
[root@rhel5 ~]# quotacheck -cumg
/home
[root@rhel5 ~]# ls
/home
aquota.group aquota.user kunyuan ky kyhack lost+found user1 user2
已经产生了aquota.group和aquota.user这两个文件了。
4)设置配额限制
就是对用户或组进行配额的设置了
[root@rhel5 ~]# edquota -u
user1 //对user1用户进行配额限制设置
Disk quotas for user user1 (uid
502):
Filesystem blocks soft hard inodes soft hard
/dev/hda6 32 25000 30000 4 0 0
// 注意一下,/dev/hda6是那一个分区;blocks是这一个分区用了多少空间;soft就是前面说的软限制,再强调一下这个值一定要比hard值要小;这里的单位是 Kbytes,别搞错了。
(inodes soft hard )这后面的这一部分是针对文件数量来做限制的,由于不好控制,一般都是限制空间大小。
[root@rhel5 ~]# edquota -p user1
-u user2 //装user1的配额设置复制给user2
[root@rhel5 ~]# edquota -g
qgroup
Disk quotas for group qgroup (gid
502):
Filesystem blocks soft hard inodes soft hard
/dev/hda6 64 55000 60000 8 0 0
[root@rhel5 ~]# edquota –t //设置超出软限制后的宽限时间,这里给改成3天;
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/hda6 3days 7days
[root@rhel5 ~]# quota -vg
qgroup //查询一下组配额设置有没有设置进去
Disk quotas for group qgroup (gid
502):
Filesystem blocks quota limit grace files quota limit grace
/dev/hda6 64 550000 600000 8 0 0
[root@rhel5 ~]# quota -vu user1 user2 //查询一下用户配额设置有没有设置进去
Disk quotas for user user1 (uid
502):
Filesystem blocks quota limit grace files quota limit grace
/dev/hda6 32 25000 30000 4 0 0
Disk quotas for user user2 (uid
503):
Filesystem blocks quota limit grace files quota limit grace
/dev/hda6 32 25000 30000 4 0 0
5)启用quota 的限额
[root@rhel5 ~]# quotaon -avug
/dev/hda6 [/home]: group quotas turned on
/dev/hda6 [/home]: user quotas turned on
//看到上面有个 turned
on 的出现,就是成功的意思啦!
6) 设置开机启用quota 配额
[root@rhel5 ~]# vi /etc/rc.d/rc.local
/sbin/quotaon –avug //在后面加上这一句
显示更完整的 quota 结果报告:
[root@rhel5 ~]# repquota -aug
*** Report for user quotas on device
/dev/hda6
Block grace time: 3days; Inode grace time:
7days
Block
limits File
limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 184292 0 0 6 0 0
ky -- 40 0 0 5 0 0
kunyuan -- 32 0 0 4 0 0
user1 -- 32 25000 30000 4 0 0
user2 -- 32 25000 30000 4 0 0
*** Report for group quotas on device
/dev/hda6
Block grace time: 7days; Inode grace time:
7days
Block
limits File
limits
Group used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 184292 0 0 6 0 0
ky -- 40 0 0 5 0 0
kunyuan -- 32 0 0 4 0 0
qgroup -- 64 550000 600000 8 0 0
OK,完成了。
PS:最近发的两个文章都超出了8W字符,,汗。。
本文出自 “ky.blog” 博客,请务必保留此出处http://kyhack.blog.51cto.com/490370/185582