Chinaunix首页 | 论坛 | 博客
  • 博客访问: 289388
  • 博文数量: 176
  • 博客积分: 2516
  • 博客等级: 少校
  • 技术积分: 1350
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-01 11:18
文章分类
文章存档

2011年(1)

2010年(18)

2009年(157)

我的朋友

分类: LINUX

2009-08-18 17:31:05

Linux磁盘配额

1、编辑fstab
     #vi /etc/fstab
     选择分区,将defaults选项改为:“defaults,usrquota,grpquota”(针对用户和组做磁盘配额)或“defaults,usrquota"(针对用户做磁盘配额 )或"defaults,grpquota"(针对组做磁盘配额)

2、重新挂载文件系统:
     #reboot

3、创建配额文件
    #quotacheck -cmug /   (此处为对根目录做磁盘配额)
    ls /aquota.*    (查看刚建立的配额文件)
    /aquota.group   /aquota.user

4、创建帐户
     #useradd zhangsan
     #passwd zhangsan

5、配额设置
    #edquota -u zhangsan   (-u,对用户;-g,对组)
      Disk quotas for user zhangsan (uid 501):
      Filesystem     blocks    soft    hard  inodes    soft    hard  
      /dev/sda3        0           0          0        0          0        0
     (其中:blocks,已用磁盘空间;soft,磁盘空间软限制,hard:磁盘空间硬限制;
        inodes: 已写多少个文件;soft:磁盘文件数量软限制;hard:磁盘文件数量硬限制)
     
      #edquota -t    (编辑配额宽限时间,默认7days )
     
6、做完配额后重启系统

7、查看磁盘配额情况
    #quota -u zhangsan

8、验证结果
    #touch {a,b,c}_{a,b,c}
   

注意:windows的磁盘配额只针对用户,而且是容量上的
         Linux的磁盘配额不但针对用户,还能针对组来做。同时,不但可以做容量上的限制,还可以做文件数量上的限制。
查看新硬盘
[root@localhost ~]# fdisk -l

Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14          78      522112+  82  Linux swap / Solaris
/dev/sda3              79        1044     7759395   83  Linux

Disk /dev/sdb: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdb doesn't contain a valid partition table

Disk /dev/sdc: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdc doesn't contain a valid partition table
把第一块新硬盘 转化为pv
[root@localhost ~]# pvcreate /dev/sdb
  Physical volume "/dev/sdb" successfully created
查看PV
[root@localhost ~]# pvdisplay
  /dev/hdc: open failed: No medium found
  --- NEW Physical volume ---
  PV Name               /dev/sdb
  VG Name
  PV Size               20.00 GB
  Allocatable           NO
  PE Size (KByte)       0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               iC7CD3-J1qd-Lz2c-Cri6-t5Vo-uQZf-KfMhZF

创建一个名为NEWGV的GV
[root@localhost ~]# vgcreate newvg /dev/sdb
  Volume group "newvg" successfully created
创建一个名字为home的逻辑卷
[root@localhost ~]# lvcreate -L 19g –n home newvg
  Logical volume "home”ated
格式化home的逻辑卷
[root@localhost ~]# mkfs -t ext3 /dev/newvg/home
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
2490368 inodes, 4980736 blocks
249036 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
152 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000

Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 33 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
挂载home分区到/mnt下
[root@localhost ~]# mount /dev/newvg/home /mnt/
开机自动挂载并检查
[root@localhost ~]# vim /etc/fstab
LABEL=/                 /                       ext3    defaults        1 1
LABEL=/boot             /boot                   ext3    defaults        1 2
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
sysfs                   /sys                    sysfs   defaults        0 0
LABEL=SWAP-sda2         swap                    swap    defaults        0 0
/dev/newvg/home         /home                   ext3    defaults,usrquota,grpquota      0 1
~
~
~
:wq
保持权限复制/home 下的文件到 新的分区
[root@localhost ~]# cp -a /home/* /mnt/
删除/home 下所有文件
[root@localhost mnt]# rm -rf /home/*
重新挂载
[root@localhost home]# umount /mnt/
[root@localhost home]# mount /dev/newvg/home  /home/
重新挂载开启磁盘配额
[root@localhost home]# mount -o uerquota,grpquota,remount /dev/newvg/home
mount: /home not mounted already, or bad option
开启磁盘配额
[root@localhost home]#mount –o usrquota,grpquota /dev/newvg/home
重新生成配额文件
[root@localhost home]# quotacheck -cuvg /home
quotacheck: Scanning /dev/mapper/newvg-home [/home] quotacheck: Cannot stat old group quota file: No such file or directory
quotacheck: Cannot stat old group quota file: No such file or directory
done
quotacheck: Checked 4 directories and 6 files
quotacheck: Old file not found.
[root@localhost home]# ls -l
total 36
-rw------- 1 root   root    7168 Feb 21 02:02 aquota.group
-rw------- 1 root   root    7168 Feb 21 02:02 aquota.user
drwx------ 2 root   root   16384 Feb 21 01:28 lost+found
drwx------ 2 redhat redhat  4096 Aug 17  2008 redhat
创建用户并设置密码
[root@localhost home]# useradd yueyang
[root@localhost home]# passwd yueyang
Changing password for user yueyang.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
设置对用户yueyang的配额
[root@localhost home]# edquota -u yueyang
Disk quotas for user yueyang (uid 501):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/mapper/newvg-home            0       4000000     5000000          0    40000  50000
~
~
~
~
~:wq
将第二块磁盘转化为pv
[root@localhost home]# pvcreate /dev/sdc
  Physical volume "/dev/sdc" successfully created
将新硬盘添加到newvg这个vg里
[root@localhost home]# vgextend newvg /dev/sdc
  Volume group "newvg" successfully extended
添加/home逻辑卷的大小
[root@localhost home]# lvextend -L +10g /dev/newvg/home
  Extending logical volume home to 29.00 GB
  Logical volume home successfully resized
在线更新逻辑卷大小
[root@localhost home]# resize2fs /dev/newvg/home
resize2fs 1.39 (29-May-2006)
Filesystem at /dev/newvg/home is mounted /home; -line resizing required
Performing an -line resize of /dev/newvg/home to 7602176 (4k) blocks.
The filesystem /dev/newvg/home is now 7602176 blocks long.

查看
[root@localhost home]# df -h /home/
Filesystem            Size  Used Avail Use% Mounted
/dev/mapper/newvg-home
                       29G  173M   27G   1% /home
你是不是想在跟分区做配额?这样是可以的。

首先,你要修改你的/etc/fstab文件

LABEL=/ / ext3 defaults 1 1

改为:

LABEL=/ / ext3 defaults,usrquota 1 1

或者改为:

LABEL=/ / ext3 defaults,grpquota 1 1

usrquota是基于用户的磁盘配额,grpquota是基于组的磁盘配额,怎么改就看你需要了。

之后你或者重新启动一下,或者remount一下(mount -o remount / 。

第二,在 / 中建立aquota.user或aquota.grup, 这两个文件要建立在你要实现配额的顶级目录,所谓定级目录,就是 ̄ ̄咋解释呢?就是比如你要在 / 上实现配额,就要在 / 下建立aquota.user或者aquota.grup;如果你要在/home上实现配额(当然你的/home应该是一个独立的磁盘分区),就在 /home下建立这两个文件中的一个。用touch命令建立就可以了,touch aquota.user 或aquota.srup。但这时建立好的文件是空的,不符和系统的需要。所以执行下一步。

第三,用quotacheck -mc / 将这两个文件(aquota.user或aquota.grup)格式化。

注意一下,除非是/分区,一般不用加-m参数,比如你要在/home上实现配额(当然你的/home应该是一个独立的磁盘分区)就:quotacheck -c /home 就可以了。

-m的意思是强迫在“读、写”模式下检查硬盘的配额。

第四,quotaon / 启动磁盘配额。

第五,edquota 用户名/组名 设置用户/组的配额

例如:edquota user_name

edquota -g group_name (对于用户组)

执行后会打开一个vi编辑窗口。可以设置磁盘空间和节点数目的配额。其中soft只是起到警告的作用,并不会真正的限制用户/组。hard就会强制限制用户/组的磁盘空间和节点数目了。

第六,设定soft quota和hard quota之间的时间:

edquota -t

出现一个 vi 窗口:

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/hda7 7days 7days

按照自己的需要修改吧。重新启动就可以了。磁盘限额就生效了。

第七,如果要成批的复制相同的磁盘配额给不通用户

edquota -p user user1 user2 user3

edquota -g -p group group1 group2 group3

第八,取消磁盘限额:

quotaoff /

此文为整理而来
 
磁盘配合可以针对单独用户进行配置,也可以针对用户组进行配置,配置的策略也比较灵活,既可以限制占用的磁盘空间,也可以限制文件的数量。
 
要实现磁盘配额,必须在系统中安装quota软件包
rpm –qa | grep quota
 
对磁盘配额的限制一般是从一个用户占用磁盘空间和最多文件数量,在某个宽限范围内可以暂时超过这个限制
 
软限制:一个用户在文件系统可拥有的最大磁盘空间和最多文件数量,在某个宽限范围内可以暂时超过这个限制。
 
硬限制:一个用户可拥有的磁盘空间或文件的绝对数量,绝对不允许超过这个限制。
 
对用户进行配额:在quota 中设置对指定用户的磁盘空间限制和文件数限制,配额只对该用户起作用。
 
对用户组进行配额:在quota 中设置对指定用户组的磁盘空间限制和文件数限制,配额将对组中的所有用户进行整体限制。
 
设置磁盘配额通常需要4
 
第一  修改/etc/fstab 文件中的装载设置,在需要配置quota的分区装载设置中添加 usrquota
grpqutoa 选项,usrquota 选择设置可以对系统中的用户进行限额,grpquota 选项设置可以对系统中的组进行限额。
 
第二 重新挂载文件系统 最简单的方法就是 reboot
 
第三 使用 quotacheck  -cug  建立磁盘配额文件 如果你要对 / 目录建立磁盘配额。那需加参数 –m  qutoacheck –cmug 来建立磁盘配额文件 aquota.user  aquota.group。有时老的系统中可能为 quota.user quota.group 文件。
 
第四 使用 edquota 对用户或组设置磁盘配额
 
试验 VMware 下的 RedHat 9
 
1         挂载一块新的IDE硬盘 ,原来的为 SCSI用盘。运来硬盘设备号为 /dev/sda 。加入新的IDE硬盘设备号为 /dev/had
 
2  启动使用 fdisk 分区新的硬盘 fdisk /dev/had ,   m for help , n add a new partition  自己分配硬盘的分区。
 
3         mkfs 格式化分区。(扩展分区不需要格式化)mkfs.ext3  mkfs.vfat
4         修改 /etc/fstab 文件 。把需要做磁盘配额的分区的参数字段加上两个参数 usrquota,grpquota
 
5         mount –a 重新挂载 /etc/fstab
 
6         在挂载的分区中执行 quotacheck –cug 创建 aquota.qroup  aquota.user 文件
 
7         在分区中使用 edquota –u or –g user group 做配额
 
8         在分区中使用 edquota –t  警告时间做修改
 
9         在分区中使用 repquota 查看user 的磁盘配合情况。使用 –g 查看group 的磁盘配额情况
 
相关命令与参数
 
   quota  [-guvs] [user,group]
 
-g   显示群组
-u   显示用户
-v   显示quota的值
-s   显示inod或硬盘空间
 
quota –guvs 显示所有用户和组在所有做磁盘配额的分区上的quota 情况
 
quota –uvs test  显示 test 用户的quota
 
quotacheck [-auvgm]
 
 -g  扫描组的文件和目录
 -u  扫描用户的文件和目录
 -v  显示扫描过程
 -a  扫描/etc/mtab 中所有已经安装并支持quota 的硬盘
 -m  / 目录做配额时使用
 
当使用quotacheck 时,该磁盘分区将自动被设成只读扇区:扫描完毕之后,扫描所得
的磁盘空间结果会写入扇区的最顶端。
 
edquota
  -u  编辑userquota
  -g  编辑 group quota
  -t   编辑宽限时间
  -p   复制模板到另一个用户
 
edquota –p user_mode –u test
 
edqutoa –t
days, hours, minutes,or seconds
 
quotaon [-a][-ugv]
 
 -a  启动所有的quota设定
 -u  激活用户的quota
 -g  激活组的quota
 -v  显示信息
 
 quotaoff  -a
 
 -a 关闭所有的quota 设定
 
相比windows 的磁盘配合。都是以分区为单位的。也都可以设置关于用户和组的配合限制。但是linux root也受到配额的限制。这个跟windows 中的adiministrator 是不同的。administrator 是没有配额限制的。
quota 真正读取的是/etc/mtab
 
quotaon -av  开启
 
edquota -p test test2 配额配置的复制
 
mkdir /home/mail
chown root.mail /home/mail
chmod 775 /home/mail
 
cp -r /var/spool/mail /var/spool/mail.back
mv /var/spool/mail/* /home/mail
rmdir /var/spool/mail
 
ln -s /home/mail /var/spool/mail

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