|
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 |
|