Linux的磁盘配额

一、介绍

   磁盘配额(quota)就字面意义来看,就是限额的意思。即对Linux的容量空间而言,就是有多少容量限制的意思。

   磁盘配额在使用上也有一些限制:

l                仅针对整个分区:磁盘配额实际运行时,是针对整个分区进行限制的,例如,如果/dev/hda5载入在/home下,那么,在/home下面的所有目录都会受到限制。

l                只针对一般身份用户有效,root用户就不能设置磁盘配额,应为他拥有整个系统所有的数据。

磁盘配额程序针对整个分区的限制主要分为下面几个部分:

l                最低限制(soft): 这是最低限制容量的意思,用户在宽限期间之内,其容量可以超过soft,但需要宽限时间之内将磁盘容量降低到soft的容量限制之下

l                最高限制(hard):最高限制就是绝对不能超过的容量。通常最高限制会比最低限制高

 例如网络磁盘空间为30MB ,那么hard就设置为30MB,但为了让用户注意,所以当使用空间超过25MB时,如用户使用了27MB的空间时,那么系统就会警告用户,让用户可在宽限时间内将他的文件容量降低至25MB(亦即是soft)之内。也就是说,softhard之间的容量其实就是宽限的容量
l                宽限时间:当用户使用的空间超过了soft,却还没有到达hard时,那么在这个宽限时间之内,就必需要请用户将使用的磁盘容量降低到soft之下。而当用户将磁盘容量使用情况超过soft时,宽限时间就会自动被启动,而在使用者将容量降低到soft之下,那么宽限时间就会自动的取消。

二、 实例讲解

  整个范例的说明如下:

  我们假设主机里头有quser1quser2这两个用户,且他们两个都挂在qgroup这个用户组下;    

   每个用户总共有50MB的磁盘空间(不考虑inode)限制。并且soft45MB 

   而宽限时间设定为1天,也就是说,这两人可以突破45MB的限制,但是在一天之内必须要将多余的文件删除,否则将无法使用剩下的空间; 

   gquota这个用户组考虑最大限额,所以设定为90MB

1.     准备好测试环境,建立用户与用户组

[root@redflag ~]# groupadd qgroup
[root@redflag ~]# useradd -g qgroup quser1
[root@redflag ~]# useradd -g qgroup quser2
[root@redflag ~]# passwd quser1
[root@redflag ~]# passwd quser2

2.      建立文件系统的磁盘配额支持

  由于需要在ext2/ext3Linux扩展格式文件系统,才可以启动磁盘配额完整的支持,所以,建议将准备启用磁盘配额的磁盘启动参数写入磁盘配额的磁盘设置(/etc/fstab)。必须注意,最好不要以根目录进行磁盘配额,另外,不要针对root做磁盘配额。

    这里需要补充一个知识点,一般来说我们是通过编辑/etc/fstab后,再重新载入文件系统的方法。通过编辑/etc/fstab来,改变/etc/mtab

 [root@redflag ~]df

 文件系统             1K-        已用           可用       已用%    挂载点

 /dev/sda3          7516200        4181780       2946452      59%      /

/dev/sda1          101086         16915         78952        18%      /boot

tmpfs              127820         0             127820        0%      /dev/shm

/dev/sdb1          972404         17648         905360        2%      /mnt/disk2

  我的/mnt/disk2是独立的分区,并且它的设备名为/dev/sdb1。那么,我必须启动/mnt/disk2这个/dev/sdb1的磁盘配额文件格式。通过vi编辑/etc/fstab文件来实现。

 

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

 LABEL=/                 /                       ext3    defaults        1 1

  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-sda2         swap                    swap    defaults        0 0

 /dev/sdb1     /mnt/disk2     ext3    defaults,usrquota,grpquota         1 2

  这样就加入了磁盘配额的磁盘格式了。不过,由于真正的磁盘配额在读取时是读取/etc/mtab文件,这个文件需要重新启动之后才能使用/etc/fstab的新数据改写,所以这个时候可以选择:

l                重新启动 (reboot)

l              重新载入文件系统来驱动设置值,操作如下:

 

 [root@redflag ~]# umount /dev/sdb1
[root@redflag ~]# mount -a 
[root@redflag ~]# grep '/mnt/disk2' /etc/mtab
/dev/sdb1 /mnt/disk2 ext3 rw,usrquota,grpquota 0 0

 
3.     扫描磁盘的用户使用状况,并产生重要的aquota.groupaquota.user

   命令介绍:

   [root@redflag ~]# quotacheck [-avug] [/mount_point]

       参数:

       -a:扫描所有在/etc/mtab内含有磁盘配额支持的文件系统,加上此参数后,/mount_point可不必写,因为扫描所有的文件系统了

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

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

       -v:显示扫描过程的信息。

 [root@redflag ~]# quotacheck –avug

quotacheck: Scanning /dev/sdb1 [/mnt/disk2] done

quotacheck: Checked 3 directories and 4 files

[root@redflag ~]# ll /mnt/disk2/

总计 32

 -rw------- 1 root root  7168 04-04 20:28 aquota.group

 -rw------- 1 root root  7168 04-04 20:28 aquota.user

 drwx------ 2 root root 16384 03-25 11:48 lost+found

   4.     启动磁盘配额的限额

   下面就要启动磁盘配额。

 [root@redflag ~]# quotaon –avug
/dev/sdb1 [/mnt/disk2]: group quotas turned on
/dev/sdb1 [/mnt/disk2]: user quotas turned on 
参数说明:
  -u:针对用户启动磁盘配额
  -g: 针对用户组启动磁盘配额
  -v:显示启动过程的相关信息
  -a:根据/etc/mtab内的文件系统设置启动有关的磁盘配额

   5.     编辑用户与用户组的可使用空间

   命令介绍:

   [root@redflag ~]# edquota [-u user] [-g group] [-t] 

   [root@redflag ~]# edquota -p user_demo -u user 

   参数说明: 

      -u:编辑 user quota     -g:编辑 group quota 

      -t:编辑宽限时间(就是超过 quota 值后,还能使用硬盘的宽限期限) 

      -pcopy 模板(以建立好的用户或用户组)到另一个用户(或用户组

 [root@redflag ~]# edquota -u quser1
         Disk quotas for user quser1 (uid 514):
         Filesystem     blocks    soft     hard     inodes     soft     hard
         /dev/sdb1      0      45000      50000          0        0        0
        [root@redflag ~]# edquota -p quser1 quser2
        [root@redflag ~]# edquota -g qgroup
         Disk quotas for group qgroup (gid 514):
         Filesystem    blocks    soft      hard     inodes     soft     hard
         /dev/sdb1      0      80000      90000          0        0        0
        [root@redflag ~]# edquota –t
         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/sdb1                     1days                  7days
6.     设置启动时启动磁盘配额

   [root@redflag ~]# vi /etc/rc.d/rc.local

   /sbin/quotaon –avug

 

你可能感兴趣的:(linux,职场,休闲,quota)