Linux磁盘配额

Linux磁盘配额

概念——磁盘配额是啥???
由于我们使用的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命令来设置这个宽限时间,分别设置容量和文件数的宽限期。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/101894.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 数组和链表的区别浅析

    数组和链表的区别浅析1.链表是什么链表是一种上一个元素的引用指向下一个元素的存储结构,链表通过指针来连接元素与元素;链表是线性表的一种,所谓的线性表包含顺序线性表和链表,顺序线性表是用数组实现的,在内存中有顺序排列,通过改变数组大小实现。而链表不是用顺序实现的,用指针实现,在内存中不连续。意思就是说,链表就是将一系列不连续的内存联系起来,将那种碎片内存进行合理的利用,解决空间的问题。所以,链表允许插入和删…

    2022年6月15日
    33
  • php curl用法_php项目实战

    php curl用法_php项目实战例1,curl扩展开启的步骤:1、将PHP文件夹下的三个文件php_curl.dll,libeay32.dll,ssleay32.dll复制到system32下;2、将php.ini(c:WINDOWS目录下)中的;extension=php_curl.dll中的分号去掉;3、重启apache或者IIS。例2,PHP开启curl_init在测试模拟登录时,出现“Calltoundefined…

    2022年8月30日
    1
  • C++ list容器的splice方法

    C++ list容器的splice方法list容器底层实现是一个带头结点的双向链表,由于链表的每个节点是单独开辟的,所以链表在移动数据,或者两个链表之间移动数据的时候,直接把节点摘下来,接入到新的位置就可以了,效率比较高。splice方法就是将list的元素进行拼接,原理就是改变结点指针的指向,效率比较高。先看看这splice方法的三种声明:(1)voidsplice(iteratorposition,list&lt…

    2022年9月24日
    0
  • 搭建一个QQ机器人叫女友起床

    搭建一个QQ机器人叫女友起床目录前言具体实现1、定时发送信息2、让机器人陪女朋友聊天3、调用一些有趣的接口健康填报小助手开发中。。。写在最后前言上一篇文章介绍了怎么配置机器人框架,并且实现了一些简单的功能。(发送私聊或者群聊信息、接收上报的事件、简单的自动回复等等)这次为了让QQ机器人更加智能,调用了一些实用的接口。通过自己搭建的机器人实现定时叫女朋友起床、和女朋友聊天等功能。如上图所示,我的机器人每天都会准时叫女朋友起床;并且在我忙的时候然而女朋友无聊的时候可以陪她聊一会天。具体实现以下实现的功能都需要机器人已经配置完

    2022年6月7日
    45
  • oracle索引视图_位图联合索引

    oracle索引视图_位图联合索引一.什么是位图索引我们目前大量使用的索引一般主要是B*Tree索引,在索引结构中存储着键值和键值的RowID,并且是一一对应的.而位图索引主要针对大量相同值的列而创建(例如:类别,操作员,部门ID,库房ID等),索引块的一个索引行中存储键值和起止Rowid,以及这些键值的位置编码,位置编码中的每一位表示键值对应的数据行的有无.一个位图索引块可能指向的是几十甚至成百上千行数据的位置.这种方式存储数据…

    2025年7月17日
    0
  • java使用md5_Java_MD5的使用「建议收藏」

    java使用md5_Java_MD5的使用「建议收藏」在Java中使用MD5摘要还是很方便的,直接上代码。1packagecom.cxc.nothing;23importjava.nio.charset.Charset;4importjava.security.MessageDigest;56publicclassMD5Test{7publicstaticvoidmain(String[]args){89…

    2022年7月7日
    24

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号