磁盘配额

1./etc/fstab

 /dev/sda3         /mnt/sda3      auto  defaults,usrquota(grpquota)  0 0

一般针对用户做

   //e2label /dev/sda3  moves  //更改卷标的

2.mount -a  //或者重启系统

3.扫描分区

#cd /mnt/sda3

   #dd if=/dev/zero of=./test.txt bs=1m count=2

#quotacheck -augvc 

-a  扫描fstab分区需要做配额的所有用户

-u  用户在要做磁盘配额控制的空间占用的大小

-g  组要在做磁盘配额控制的空间占用的大小

-v  显示详细信息

-c  忽略原有的文件

扫描完成会产生aquota.user的数据文件

4.编辑配额

edquota 

-u 针对用户编辑

-g 针对组编辑

-p 作为模板

#edquota -u user1

文件系统分区 块(1块1kb,已经使用的空间) soft  hard

inodes(表项) soft(创建文件个数)  hard(最多创建文件的个数)   (两个警告和限制) 

#edquota -p user1 user2

5.启用配额

#quotaon /dev/sda3   //临时指令,重启系统会消失

#vim /etc/rc.d/rc.local

quotaon /dev/sda3

//写入开机脚本文件可以实现重启后仍然启动

6.测试配额

#su - user1

#cd /mnt/sda3

#dd if=/dev/zero of=./xxx bs=1m count=10

超出警告的可以再创建,超出限制级别的会创建,但文件大小只是剩余的配额空间大小,超过节点的个数,无法创建文件,需要删除已创建的节点才能实现创建

 

 

 

 

磁盘配额用脚本实现管理:

将需要做磁盘配额的分区输入,脚本读取之后会自动添加/etc/fstab 文件

,并运行磁盘配额的所有步骤

#!/bin/bash

cat /dev/null >/root/quota.txt

read -p "pelase input a partion:" PARTION

while read LINE;do

if echo $LINE|grep $PARTION &>/dev/null       --&所有的输出重定向

 then 

 PARTION=`echo $LINE |awk ' { print $1 } ' `

 MOUNTPOINT=`echo $LINE |awk ' { print $2 } ' ` 

FSTYPE=`echo $LINE |awk ' { print $3 } ' `

 DUMP=`echo $LINE |awk ' { print $5 } ' `

 FSCK=`echo $LINE |awk ' { print $6 } ' ` 

echo -e "$PARTION\t$MOUNTPOINT\t$\t\tdefaults,usrquota\t$DUMP $FSCK">>/root/qupta.txt

 else

echo $LINE >>/root/quota.txt

fi

done </etc/fstab

/bin/cp -f /root/quota.txt  /etc/fstab

umount $PARTION

mount -a

quotacheck -augvcf %>/dev/null

sleep 5             ---等待5minutes

edquota -u user10         --针对用户user10 使用磁盘配额

quotaon $PARTION

echo "quotaon $PARTION">>/etc/rc.d/rc.local     --开机自己启动磁盘配额

 

 

#quotaon /dev/sda4

--查看磁盘配额是否启用