Chinaunix首页 | 论坛 | 博客
  • 博客访问: 250686
  • 博文数量: 93
  • 博客积分: 3001
  • 博客等级: 中校
  • 技术积分: 1050
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-11 13:20
文章分类

全部博文(93)

文章存档

2011年(1)

2009年(92)

我的朋友

分类: LINUX

2009-07-13 15:44:23

   Linux中的磁盘配额按限制的项目不同,可分为空间限制(blocks 大小)和文件数限制(inodes 个数)

1、检查系统是否支持磁盘配额(2.4及以后的内核默认是支持磁盘配额的):

root@rhel ~]# grep CONFIG_QUOTA /boot/config-   [TAB键补全]

CONFIG_QUOTA=y

CONFIG_QUOTACTL=y  #这样就说明是支持磁盘配额的;

2. 编辑/etc/fstab

[root@linux ~]# df  》》自己找一个合适的分区来做实验,这里用/disk2

Filesystem           1K-blocks      Used Available Use% Mounted on

/dev/hda1              5952252   3193292   2451720  57% /

/dev/hdb1             28267608     77904  26730604   1% /disk2

/dev/hda5              9492644    227252   8775412   3% /disk1

[root@linux ~]# vi /etc/fstab

LABEL=/        /          ext3    defaults                    1 1

LABEL=/disk1   /disk1     ext3    defaults                    1 2

LABEL=/disk2   /disk2     ext3    defaults,usrquota,grpquota     1 2  

/dev/hda3      swap       swap    defaults                    0 0

注意,多了usrquota,grpquota,在『 defaults,usrquota,grpquota 』之间都没有空格,务必正确书写。这样就算加入了 quota 的磁盘格式了!不过,由于真正的 quota 在读取的时候是读取 /etc/mtab 这个文件的,而该文件需要重新开机之后才能够以/etc/fstab 的新数据进行改写!所以这个时候可以选择:

重新开机 (reboot) 或者重新挂载mount -o remount /disk2

3. 扫瞄磁盘的使用者使用状况,并产生重要的 aquota.group aquota.user

quotacheck –avug

quotacheck 命令检查启用了配额的文件系统,并为每个文件系统建立一个当前磁盘用的表。该表会被用来更新操作系统的磁盘用量文件。此外,文件系统的磁盘配额文件也被更新。

    -a 意味着在 /etc/mtab 中所有挂载了的非 NFS 文件系统都会被检查来决定是否启用了配额;

    -u 针对使用者扫描文件与目录的使用情况,会建立aquota.user

    -g 针对群组扫描文件与目录的使用情况,会建立aquota.group

    -v 显示扫描过程的信息;

-M "强制"进行quotacheck的扫描。 

4.进入/disk2查看是否生成aquota.group aquota.user

cd /disk2

ll

-rw-------  1 root root  6144 Sep  6 11:44 aquota.group

-rw-------  1 root root  6144 Sep  6 11:44 aquota.user

5.为用户或者组做磁盘配额限制

针对用户我们可以使用:edquota -u user,针对组我们可以使用edquota –g group

这里我们也可以使用复制的方式来制作用户或者组的磁盘配额,用户:edquota -p user1
-u user2(
user1的磁盘配额复制给user2);:edquota -p group1 -g group2(原理同上)

[root@linux ~]# edquota -g qgroup

Disk quotas for group qgroup (gid 502):

  Filesystem    blocks    soft    hard  inodes   soft   hard

  /dev/hdb1          0   80000   90000       0      0      0

文件内有七个栏目:

 Filesystem => 进行配额管制的文件系统。

 blocks => 已经使用的区块数量(单位1KB  【不需要修改】

 soft => block 使用数量的"软性"限制;

 hard => block 使用数量的"硬性"限制;

 inode => 已经使用的 inode 数量  【不需要修改】

 soft => inode 使用数量的"软性"限制;

 hard => inode 使用数量的"硬性"限制。

Block limits是对磁盘空间使用的限制,以KB为单位,soft是指软限制,hard是指硬限制,例,soft限制为5MBhard限制为8MB,当使用者user01使用空间超过5MB时,系统会进行提示,但可以继续使用空间,而当使用者user01使用空间达到8MB时,就会限制组qgroup继续使用/disk2空间。

File limits是对使用者创建文件的限制,softhard同上是软限制和硬限制,分别是5080,当使用者user02创建文件超过50个时,系统会进行提示,但仍可以继续创建文件,而当使用者user02创建文件超过80个文件时,就会限制组qgroup继续创建文件,但要注意,因为使用者user02是在/tmp目录下进行了磁盘配额限制,所以/tmp目录会算做一个文件,所以user02最多只能创建79个文件。

6. 设置超过软限额的宽恕时间

edquota -t
使用root身份执行edquota -t后,出现如下信息:

Time units may be:days,hours,minutes,or seconds
Grace period before enforcing soft limkts for users:
/dev/hdb5:blck grace period:7 days,file grace period:7 days
系统缺省是7天,可以改成任意的天数、小时、分、秒,格式如7 days7 hours7minutes7 secomnds等。

7.启用磁盘配额

启用所有分区的磁盘配额:quotaon -avug,

启用指定分区的磁盘限额:quotaon -vug /disk2

8. 关闭磁盘配额

quotaoff -a(关掉所有的磁盘配额)

quotaoff -ug /disk2 (关闭特定分区的磁盘配额)

9. 查看特定用户或者组的配额分别是:quota -u userquota -g group
查看所有的磁盘配额:repquota -a
查看指定分区的配额情况:repquota /disk2

查看被警告超过配额的用户或者组:warnquota
查看配额的状态:quotastats

10.叫配额随系统自动加载

vi /etc/rc.d/rc.loacl

/sbin/quotaon -avug

不更动既有系统的 quota 实例

  如果要设定一个对外开启的邮件主机的时候,所以使用 quota 进行对用户限制确实是一个好建议!由于 quota 只能针对整个 partition 进行整体的磁盘配额,无法针对某个目录进行磁盘配额!

  很多时候当初进行 Linux 安装时,如果忘记将 /home 独立成一个 partition 时,也忘记将 /var/spool/mail 这个 mailbox 放置的目录独立出来!在上面的那个实作当中,partition仅有/, /disk1, /disk2,那我的所有使用者都在 /home 里面, 邮件在 /var/spool/mail 底下,怎么办?只要:

1, /home 这整个目录搬移到 /disk2 底下;

2, 利用 ln -s /disk2/home /home 来建立连结数据;

3, /var/spool/mail 整个搬移到 /disk2 底下;

4,利用 ln -s /disk2/mail /var/spool/mail 来建立连结数据。

  这样做的好处就是不论使用者的邮件目录还是家目录,加起来的容量就不能超过限制容量!当然也可以依据不同的使用者与群组来设定 quota 然后同样的以上面的方式来进行 link 的动作!

 

阅读(1404) | 评论(0) | 转发(0) |
0

上一篇:优化总结

下一篇:linux批量修改文件内容

给主人留下些什么吧!~~