Chinaunix首页 | 论坛 | 博客
  • 博客访问: 316054
  • 博文数量: 90
  • 博客积分: 2850
  • 博客等级: 少校
  • 技术积分: 951
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-02 14:01
文章分类

全部博文(90)

文章存档

2015年(1)

2014年(1)

2013年(2)

2011年(3)

2010年(83)

分类: LINUX

2010-11-23 11:16:06

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   显示指令指令执行过程。
5)     quotaoff 命令:关闭磁盘空间限制
[root@linux ~]# quotaoff [-avug]
参  数:
  -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.groupaquota.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



 
阅读(945) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~