概念——磁盘配额是啥???
由于我们使用的Linux系统是多用户任务的操作系统(也就是说我们同一个系统下的多个用户共同使用着相同的硬盘空间),这就难免出现了多个用户共享磁盘的情况,这种情况会导致什么问题呢?比如用户A在磁盘内存放了大型文件,导致用户B在需要存储文件时发现磁盘已经被写满无法进行保存…。那么如何使多个用户公平地分配磁盘空间呢?这就是磁盘配额要解决的问题。当然也可以在创建一个用户的时候,将他的主目录建立在一个单独的逻辑分区上,但是这样太麻烦了,也不够灵活。
实现磁盘配额需要什么前提条件呢?
1.需要Linux内核的支持。
2.安装quota软件包
在RHEL6系统中,磁盘配额的内核支持和quota软件包已经默认配置好了,所以我们不用另行设置。
磁盘配额有什么特点呢?
作用范围:针对指定的文件系统(也就是分区)
限制对象:用户账号、用户组
限制类型:磁盘容量(默认KB单位)、文件数量
限制方法:软限制、硬限制
磁盘配额设置的详细方法:
1.首先确保我们的系统中有一个普通用户,如果没有,新建一个普通用户
Useradd 和 passwd
2.创建一个新分区,并对其进行格式化
步骤省略…
3.刷新分区ls /dev/sda*
4.创建新分区的挂载点, mkdir /media/disk1
5.修改配置文件
在修改前,先用一条命令:
•blkid /dev/sda1 使用该命令查看指定分区的UUID
查看后,赋值其UUID,然后执行:
Vim /etc/fstab
获得结果如下
UUID=0bc12d95-9c7b-4138-8909-4a0e2774e023 /boot ext4 defaults 1 2
/dev/mapper/vg_zxz-lv_swap swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
UUID=6fec7406-8471-4bd5-b01e-451e68528292 /media/disk1 ext4 defaults,usrquota,grpquota 0 0
UUID=732ee58d-5e8f-4d43-893d-f38cf05aac5d /media/disk5 ext4 defaults,usrquota,grpquota 0 0
按a进入编辑模式,按照原有格式,添加进刚刚的uuid及其他配置。如上红字部分
6.mount –a 读取/etc/fstab中的信息,进行重新挂载
7.ls 查看挂载目录中的内容,如:
ls /media/disk1/
显示lost+found即为成功
8.关闭selinux,关闭方法—》setenforce 0
9.使用quotacheck命令在挂载目录当中生成配置磁盘的数据库文件
Quotacheck –ugcv /media/disk1
执行成功的话,会在/media/disk1/下生成两个新的文件:aquota.group和aquota.user
10.使用“edquota –u 普通用户名”配置该用户对这个磁盘分区的使用配额。也可以使用“edquota –g 组名”的方法对指定组进行配额设置。具体方法如下:
Edquota –u zgod
执行结果:
Disk quotas for user zgod (uid 500):
Filesystem blocks soft hard inodes soft hard
/dev/sdb1 32 10240 20480 8 5 8
/dev/sdb5 0 10240 20480 0 5 8
按照上方的设置将文件大小的软硬限制和文件个数的软硬限制进行设定。保存退出
1配置文件的对应字段含义如下:
2Filesystem 文件系统
3blocks 已经使用的块数(块的单位为1K)
4soft 块数软限制,0表示禁用
5hard 块数硬限制,0表示禁用
6inodes 已经创建的文件个数,如果后面有*表示已经超出软限制
7soft 创建的文件个数的软限制,0表示禁用
8hard 创建的文件个数的硬限制,0表示禁用
9edquota -p username username1 把username用户的设定复制给username1用户
11.设置完成后,我们使用”qoutaon –ugv /media/disk1”来开启我们要引用磁盘配额功能的分区。
12.使用”su – 普通用户名”方法来切换到普通用户,在开启了磁盘配额的分区内创建文件进行测试。
1)可以使用touch或echo或cp等方法来向该分区内添加文件。
如touch方法不能正常显示配额超出提示的话,说明我们不能通过创建空文件的形式来检查这种配额设置,要用echo或cat、cp的方式来向分区内添加非空文件。
正常的情况下,当添加\创建的文件超过我们软限制的数量后,会提示: sdb1: warning, user file quota exceeded.超出硬限制的数量时会显示: -bash: 9: 超出磁盘限额。
2)可以使用dd if=/media/disk1 of=myfile bs=1M count=120
正常会显示结果:dd: 正在打开”myfile”: 超出磁盘限额
13.使用quota –a或quota –u zgod 命令,可以查看当前各磁盘配额使用情况或指定用户使用磁盘情况
注意:当某个用户触发了软限制,grace time就会倒计时,在默认的7天时间内。如果用户还不清理磁盘使之符合软限制要求,则软限制就会变成了硬限制。这个时间叫做宽限期,可以通过edquota –r命令来设置这个宽限时间,分别设置容量和文件数的宽限期。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/101894.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...