Linux磁盘配额应用

  1. 磁盘配额

    1. 网站服务  针对网站服务域名空间上一般会设置配额限制;

    2. 邮件服务 针对邮件服务每个邮箱用户设置磁盘配额限制;

    3. 文件服务 针对文件服务器,每个用户设置配额限制;

    4. Home家目录 针对家目录设置磁盘配额限制

    5. 其他诸如NFS、ftp等服务;

    6. quota简介

      什么是quota?什么是磁盘配额?在Linux操作系统中,由于是多人工作环境,多个用户共同使用一个分区,在没有限配额制下,占用存储多的用户就会侵占其他用户的存储权利,造成其他用户的使用不便;而磁盘配额就是为了解决这个问题,在root环境下通过quota指令设置磁盘配额;

    7. quota主要应用环境

  2. quota相关指令

2.1、quota指令

quota   --显示磁盘的使用和限制

参数:

-g  显示用户所在组的组配额限制

-u 缺省显示当前用户的配额限制,指定用户则显示用户配额限制;

-v 显示文件系统上的配额限制,即使没有占用空间

-q 只显示超出限额的文件系统

只有root可以使用-u参数,普通用户可以使用-g参数查看用户所在组的配额限制;


2.2、quotacheck  扫描文件系统,创建、检测、修复配额文件;

参数:

-d      进入调试状态.这会产生许多用于调试程序的信息.输出的信息非常详尽,而扫描速度会减慢;

-a     如果用它取代任何文件系统的名字, quotacheck 将检测所有在 /etc/mtab 中列为可读写 的文件系统的配额.在缺省状态下,只有在 /etc/mtab 中被列为配额的文件系统才会被检测.

-u     只检测在 /etc/mtab 列出或指定的文件系统中的用户配额.这是缺省状态下采取 的 行动

-R     当与 -a 一起使用时,检测除根(root)文件系统外的其他所有文件系统.

-i     交互模式.在缺省状态下, quotacheck 在发现错误后即退出.在交互模式下,用户会被问取建议.  参考选项 -n.

-n     有时候对同一个ID会找到多个结果. 通常遇到这种情况 quotacheck 就终止运行.该 选项强制使用第一个结果(该选项在交互模式下同样有效).

2.3、edquota     - 编辑用户配额

参数:

-u     编辑用户配额.这是默认的选项.

-g     编辑组配额.

-p      对每个指定的用户/组的原配额加倍.  这是用来对一组用户/组初始化配额时常用的方法.

FILES(相关文件)

位于文件系统root下的aquota.user 或 aquota.group 配额文件.

/etc/mtab           已挂载的文件系统表

2.4、quotaon  -- - 开启关闭文件系统配额

参数:

-e     开启指定文件系统配额。 当程序名是 quotaon 时, 此选项是默认的。

-d     关闭指定文件系统配额。 当程序名是 quotaoff 时, 此选项是默认的。

-a      当 用 在 任 何 文 件 系 统名称的地方时, quotaon/quotaoff 将允许/禁止所有在/etc/mtab 中指定的文件系统为有磁盘配额的读-写。 这个选项一般被用在系统启动时开启配额。

-v     为每个开启或关闭配额的文件系统显示一条消息。

-u     处理用户配额。 这是默认选项。

-g     处理组配额。

相关文件 (FILES)

aquota.user         文件系统根目录下的用户配额文件

aquota.group        文件系统根目录下的组配额文件

/etc/mtab           已装载的文件系统表

quotaoff   启关闭文件系统配额

参数:

于quotaon相同

三、home分区进行磁盘配额限制

3.1、由于配额针对分区,为了体验账户管理和权限管理,挂载一个新的分区,进行home迁移;

1)/home分区迁移

2)针对home分区进行磁盘配额限制;

3)设置用户配额;

4)编辑群组可用的配额;

5)设置开机启动quota;

6)requota显示quota信息

3.2、/home分区迁移

1)备份home分区;

[root@woon /]# mkdir /homebak

[root@woon /]# cp -a /home/* /homebak/


2)格式化sdb为ext4;

[root@woon ~]# fdisk l

Disk /dev/sdb: 53.7 GB, 53687091200 bytes

255 heads, 63 sectors/track, 6527 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x00000000


[root@woon /]# ls -la /dev/sdb*

brw-rw----. 1 root disk 8, 16 2月  10 20:19 /dev/sdb

brw-rw----. 1 root disk 8, 17 2月  10 20:19 /dev/sdb1

[root@woon /]# mkfs.ext4 /dev/sdb1

3) 建立/dev/sdb1配额支持;

[root@woon /]# vi /etc/fstab

添加

/dev/sdb1               /home           ext4            defaults,userquota,grpquota     0  0

4)将sdb1挂载在/home下

root@woon /]#rm rf /home/*

root@woon /]#mount /dev/sb1 /home

root@woon /]#cp a  /homebak/* /home/

root@woon /]#mount a

[root@woon ~]# df h

Filesystem            Size  Used Avail Use% Mounted on

/dev/mapper/vg_woon-lv_root                8.3G  4.0G  4.0G  51% /

tmpfs                 504M   72K  504M   1% /dev/shm

/dev/sda1             477M   27M  426M   6% /boot

/dev/sde1             459G   70M  435G   1% /opt/gpt1

/dev/sdb1              50G   52M   47G   1% /home


注:如果是已经挂载的分区,可以使用mount o remount /dev/sdb1

[root@woon ~reboot

抽袋烟的功夫…………

5)生成配额文件

由于seLinux会影响quota,所以先关闭selinux

[root@woon ~]# setenforce 0

[root@woon ~]# getenforce

[root@woon ~]# quotacheck aug

查看是否生成配额文件;

[root@woon home]# ll /home

总用量 48

-rw-------. 1 root   root    7168 2月  10 21:03 aquota.group

-rw-------. 1 root   root    7168 2月  10 21:03 aquota.user

drwx------. 4 hchen  hchen   4096 2月  10 21:02 hchen

drwx------. 2 root   root   16384 2月  10 20:23 lost+found

drwx------. 4 woon   woon    4096 2月   9 17:52 woon

drwx------. 4 woonli woonli  4096 2月  10 20:39 woonli

drwx------. 4 zwen   zwen    4096 2月  10 21:02 zwen

6)启动quota

[root@woon home]# quotaon -avug

/dev/sdb1 [/home]: group quotas turned on

/dev/sdb1 [/home]: user quotas turned on

  1. 编辑配额

  2. 设置用户woon、zwen和hchen磁盘配合soft为50M,hard为55M

[root@woon home]# edquota -u woon

Disk quotas for user woon (uid 500):

Filesystem                   blocks       soft       hard     inodes     soft     hard

/dev/sdb1                        40        51200     61440         10        0        0

[root@woon home]# edquota p woon hchen

[root@woon home]#edquota p woon zwen

#复制账户woon的quota给账户zwen和hchen;

8)设置宽限时间为3天

[root@woon home]# edquota -t

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/sdb1                           3days                       7days

9)设置组配额

[root@woon home]# edquota –g woon

^^^^^^^^^^^^^^^^^^^^^^^^

10) 查看quota设置结果记录

[root@woon ~]# repquota -av

*** Report for user quotas on device /dev/sdb1

Block grace time: 3days; Inode grace time: 7days

                       Block limits                Filelimits

User           used    soft    hard grace    used  soft hard  grace

----------------------------------------------------------------------

root      --   50500      0       0          10975     0    0      

woon      --    8552  51200   61440            218    0     0      

woonli    --      36      0       0              9     0    0      

hchen     --      32  51200   61440              8     0    0      

zwen      --      32  51200   61440              8     0    0      

#1000     --    2224      0       0             59     0    0      

 

Statistics:

Total blocks: 8

Data blocks: 1

Entries: 6

Used average: 6.000000

 

四、quota验证

[root@woon woon]# su – woon

[woon@woon ~]$ dd if=/dev/zero of=/home/woon/fileddbs=1M count=100

sdb1: warning, user block quota exceeded.

sdb1: write failed, user block limit reached.

dd: 正在写入"/home/woon/filedd": 超出磁盘限额

记录了59+0 的读入

记录了58+0 的写出

61665280字节(62 MB)已复制,0.0753227 秒,819 MB/

超出磁盘配额

[woon@woon ~]$ du -h filedd

59M     filedd

[woon@woon ~]$ du -h |tail -1

60M


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。