全部博文(176)
分类: LINUX
2009-08-18 17:31:05
|
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 编辑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 |