新加坡狮城论坛

返回列表 发帖 付费广告
查看: 1139|回复: 0

linux磁盘配额

[复制链接]
发表于 半年前|来自:吉林辽源 | 显示全部楼层 |阅读模式
1、编辑fstab
     #vi /etc/fstab
     选择分区,将defaults选项改为:“defaults,usrquota,grpquota”(针对用户和组做磁盘配额)或“defaults,usrquota"(针对用户做磁盘配额 )或"defaults,grpquota"(针对组做磁盘配额)
2、重新挂载文件系统:
     #mount  -o  remount  /
3、创建配额文件
    #quotacheck -cmug /   (此处为对根目录做磁盘配额)
    ls /aquota.*    (查看刚建立的配额文件)
    /aquota.group   /aquota.user
4、创建帐户
     #useradd zhangsan
     #passwd zhangsan
5.logout注销root,用zhangsan登陆
此举是用普通用户登陆,用户在登陆时产生的模板要占用一些空间,看到这些,然后再设置配额比较好
然后logout     zhangsan,用root登陆  对用户进行配额
6、配额设置
    #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 )
7.开启quota
quotaon -avug  开启
quotaoff  -avug  关闭      

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

彻底删除用户  userdel -r  用户名

重启时启动quota
vi  /etc/rc.d/rc.local
里面最后一行添上
/sbin/quota  -aug   
注意: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  编辑user的quota
  -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

发表回复

您需要登录后才可以回帖 登录 | 注册会员 新浪微博登陆

本版积分规则

联系客服 关注微信 下载APP 小程序 返回顶部 返回列表