Linux磁盘配额

  • 内容
  • 相关

操作环境Red Hat Enterprise Linux 6 64 位。

注意:在安装Linux系统进行分区时,要留出一部分空间,不能全分完了,否则这里就无法进行磁盘配额。(我的分区是:/ 10G 、/boot 200MB 、swap 2048MB 、/home 5G,剩余的作为预留)

(想了解相关基础知识的请转到:https://www.yxfseo.cn/post-143.html

1、建立测试用的用户和群组,并设置密码。
    使用 
groupadd 和 useradd 进行新建用户和组,用 passwd 命令修改用户密码。

[root@youyou 桌面]# groupadd qgroup

[root@youyou 桌面]# useradd -g qgroup qtest1

[root@youyou 桌面]# useradd -g qgroup qtest2

[root@youyou 桌面]# passwd qtest1

更改用户 qtest1 的密码

新的 密码:

重新输入新的 密码:

passwd 所有的身份验证令牌已经成功更新。

[root@youyou 桌面]# passwd qtest2

更改用户 qtest2 的密码

新的 密码

重新输入新的 密码:

passwd 所有的身份验证令牌已经成功更新。

    注意:在这里输入的密码是不会显示出来的。

2、建立文件系统的磁盘配额支持,新建一个分区,修改/etc/fstab。重新remount文件系统来驱动设定值。

    先新建一个分区:

[root@youyou 桌面]# fdisk /dev/sda

01.png

    这里如果不知道命令什么意思,可以输入 m 进行查看。(这里我已经弄过了,新建的分区是/dev/sda7

    然后写入分区,输入w,这里时间可能要长一些。

Command (m for help): w


The partition table has been altered!


Calling ioctl() to re-read partition table.


WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.

The kernel still uses the old table. The new table will be used at

the next reboot or after you run partprobe(8) or kpartx(8)

Syncing disks.

[root@youyou 桌面]# partprobe

Warning: WARNING: the kernel failed to re-read the partition table on /dev/sda (设备或资源忙).  As a result, it may not reflect all of your changes until after reboot.

    这里会出现这个错误,没关系,可以格式化以下 ext4 文件系统。

[root@youyou 桌面]# mkfs.ext4 /dev/sda7

mke2fs 1.41.12 (17-May-2010)

文件系统标签=

操作系统:Linux

块大小=1024 (log=0)

分块大小=1024 (log=0)

Stride=0 blocks, Stripe width=0 blocks

21912 inodes, 87624 blocks

4381 blocks (5.00%) reserved for the super user

第一个数据块=1

Maximum filesystem blocks=67371008

11 block groups

8192 blocks per group, 8192 fragments per group

1992 inodes per group

Superblock backups stored on blocks: 

8193, 24577, 40961, 57345, 73729


正在写入inode: 完成                            

Creating journal (4096 blocks): 完成

Writing superblocks and filesystem accounting information: 完成


This filesystem will be automatically checked every 25 mounts or

180 days, whichever comes first.  Use tune2fs -c or -i to override.

     完成之后查看一下分区:

[root@youyou 桌面]# fdisk -l

111.png

    创建挂载目录,并修改权限777,可以让其他用户拥有所有权限,方便后面的操作

[root@youyou ~]# mkdir /s1

[root@youyou ~]# chmod 777 /s1

    创建文件挂在点:可以手动挂载也可以编辑/etc/fstab。

[root@youyou ~]# echo "/dev/sda7                 /s1                   ext4    defaults,usrquota,grpquota        0 0" >> /etc/fstab

#第一个字段为被挂载的分区,第二个字段为挂载的目录,第三个字段是被挂载的分区的文件系统类型,后面的几个字段是支持quota的参数。各字段用空格分隔。

    如果不放心可以查看一下:[root@youyou ~]# vi /etc/fstab

[root@youyou ~]# mount /dev/sda7 /s1

[root@youyou ~]# ls -lh /s1

总用量 12K

drwx------. 2 root root 12K 1025 22:43 lost+found

    注意:挂载成功了/s1目录下会生成 lost+found 这个目录

重新挂载,更新文件系统:

[root@youyou ~]# mount -o remount /s1

[root@youyou ~]# grep /s1 /etc/mtab

/dev/sda7 /s1 ext4 rw,usrquota,grpquota 0 0

查看一下,可以看到已经成功了。

3、扫描磁盘的使用者使用状况,并产生的aquota.groupaquota.user

[root@youyou ~]# quotacheck -avug

quotacheck: Your kernel probably supports journaled quota but you are not using it. Consider switching to journaled quota to avoid running quotacheck after an unclean shutdown.

quotacheck: Scanning /dev/sda7 [/s1] done

quotacheck: Cannot stat old user quota file: 没有那个文件或目录

quotacheck: Cannot stat old group quota file: 没有那个文件或目录

quotacheck: Cannot stat old user quota file: 没有那个文件或目录

quotacheck: Cannot stat old group quota file: 没有那个文件或目录

quotacheck: Checked 2 directories and 0 files

quotacheck: Cannot create new quotafile /s1/aquota.user.new: 权限不够

quotacheck: Cannot initialize IO on new quotafile: 权限不够

quotacheck: Cannot create new quotafile /s1/aquota.group.new: 权限不够

quotacheck: Cannot initialize IO on new quotafile: 权限不够

    在这里会出现这么一个错误,这是因为系统中默认启用了selinux安全机制,将selinux设为许可模式,再次执行命令,就可以了。

[root@youyou ~]# setenforce 0     //关闭selinux防火墙

[root@youyou ~]# quotacheck -avug

quotacheck: Your kernel probably supports journaled quota but you are not using it. Consider switching to journaled quota to avoid running quotacheck after an unclean shutdown.

quotacheck: Scanning /dev/sda7 [/s1] done

quotacheck: Cannot stat old user quota file: 没有那个文件或目录

quotacheck: Cannot stat old group quota file: 没有那个文件或目录

quotacheck: Cannot stat old user quota file: 没有那个文件或目录

quotacheck: Cannot stat old group quota file: 没有那个文件或目录

quotacheck: Checked 2 directories and 0 files

quotacheck: Old file not found.

quotacheck: Old file not found.

    再显示看一下,就可以看到生成的aquota.groupaquota.user

[root@youyou ~]# ls -lh /s1

总用量 26K

-rw-------. 1 root root 6.0K 1025 23:12 aquota.group

-rw-------. 1 root root 6.0K 1025 23:12 aquota.user

drwx------. 2 root root  12K 1025 22:43 lost+found

4、启动 quota 的限额

[root@youyou ~]# quotaon -avug

/dev/sda7 [/s1]: group quotas turned on

/dev/sda7 [/s1]: user quotas turned on

5、编辑使用者的可使用空间和编辑群组可使用的空间。

[root@youyou ~]# edquota -u qtest1

02.png

[root@youyou ~]# edquota -p qtest1 -u qtest2

[root@youyou ~]# edquota -u qtest2

    修改用户和群组宽限时间:

[root@youyou ~]# edquota -t

03.png

[root@youyou ~]# edquota -gt

04.png

    修改群组的限制

[root@youyou ~]# edquota -g qgroup

05.png

6、利用  repquota显示更完整的 quota 结果报告

[root@youyou ~]# repquota -avug

06.png

下面开始测试:

1、首先登录qtest1用户

    su qtest1

2、进入 /s1 目录,用 dd 命令进行文件写入测试:

[qtest1@youyou s1]$ dd if=/dev/zero of=/s1/testfile1 bs=1K count=47

[qtest1@youyou s1]$ quota -vu

07.png

    if=/dev/zero 表示从/dev/zero文件输出of=/s1/testfile1 表示输出到/s1/testfile1文件中,也就是从/dev/zero这个文件中读取数据写入到/s1/testfile1这个文件中bs=1K表示一次读取写入的大小是1KB, count=47表示被读取47次,所以理论上最后写入 /s1/testfile1 的数据应该是47KB。在这里我们可以看到提示超过了磁盘配额限制,自动启动了宽限时间

    我们删掉这个文件再来查看:

[qtest1@youyou s1]$ rm -rf testfile1

[qtest1@youyou s1]$ quota -vu

11.png

    可以看到删掉那个文件之后,宽限时间自动取消了。

        qtest2 的测试方法和qtest1的测试方法相同。

    测试群组可以用dd 命令反复进行文件写入,再使用quota -g去查看。

12.png

7、设定开机时启动 quota

[root@youyou ~]# vi /etc/rc.d/rc.local

#!/bin/sh

#

# This script will be executed *after* all the other init scripts.

# You can put your own initialization stuff in here if you don't

# want to do the full Sys V style init stuff.

 

touch /var/lock/subsys/local

/sbin/quotaon -avug

保存退出


本文标签:

版权声明:若无特殊注明,本文皆为《尤尤》原创,转载请保留文章出处。

本文链接:Linux磁盘配额 - https://www.yxfseo.cn/post-144.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注