linux 系统配额管理功能,磁盘配额管理_Linux教程_Linux公社-Linux系统门户网站

article/2025/10/20 19:27:35

在多用户系统中,如果没有对用户使用的磁盘空间做出限制,用户无限制地存放数据和文件,可能会导致系统磁盘空间告警。如果存放的是无用数据,就会导致磁盘空间白白浪费。磁盘配额可以限制用户或组在磁盘上存放文件的空间,这样既可以让用户拥有一定的存储空间,又可以避免用户无限制地存放数据导致系统磁盘空间不足。

一、为磁盘配额提供支持

在Linux系统中,为磁盘配额提供支持的是quota软件包,如果系统中没有安装这个软件包,用户可以自行安装。

在设置磁盘配额之前,必须要获文件系统的支持。为此需要系统中的自动挂载文件/etc/fstab,为相应的文件系统添加挂载参数:usrquota(启用用户限额)和grpquota(启用用户组限额)。

以磁盘分区/dev/sda3为例,讲解如何建立磁盘配额。

(1)修改自动挂载文件/etc/fstab,启用文件系统sda3的配额支持,将其修改为以下内容:

/dev/sda3    /home    ext3    defaults,usrquota,grpquota    1 2

(2)修改完之后,需要重新挂载文件系统,以启动磁盘配额支持:

# umount /home

# mount /dev/sda3 /home

也可以使用以下命令重新挂载/etc/fstab中记录的所有分区:

#使用mount的选项a重新挂载所有分区

# mount -a

实在不行就重新启动系统即可。

(3)修改完成之后,可以使用mount命令验证设置:

#使用mount命令查看挂载的分区及参数

# mount

...

/dev/sda3 on /home type ext3 (rw,usrquota,grpquota)

如果在命令输出中看到usrquota和grpquota,表明已经成功启用磁盘配额支持。

二、检查磁盘配额命令quotacheck

启用了文件系统的配额支持后,还不能立即使用配额,还必须检查相应的文件系统,并建立磁盘配额文件。检测文件系统并建立磁盘配额文件,需要使用命令quotacheck。

【命令格式】

quotacheck [option] filesystem

【常用选项】

-c:跳过原有配额文件,只执行新的扫描并保存到磁盘。

-v:显示命令详细信息。

-u:检查用户使用文件系统的情况。

-g:检查用户组使用文件系统的情况。

【用法示例】

(1)检查磁盘分区/dev/sdd1,并将相关信息写入到配额文件中:

# quotacheck -cug /home

(2)如果要验证上述命令的执行结果,可以使用ls命令查看建立的配额配置文件:

# ls -l /home/aquota*

-rw------- 1 root root 7168 Dec 11 14:32 /home/aquota.group

-rw------- 1 root root 7168 Dec 11 14:32 /home/aquota.user

从上面的命令输出可以看出,命令在文件系统的根目录中建立了两个文件:aquota.group和aquota.user。这两个文件分别用于存放用户和用户组的磁盘配额信息,包括文件系统的使用情况及配置信息等。

三、查看磁盘使用情况命令repquota

在所有用户都可以使用的文件系统上,并不需要为每个用户都设置磁盘配额,通常只需要为那些经常存放大文件、严重占用磁盘空间的用户设置即可。

查看文件系统的使用情况,可以使用repquota命令(使用该命令的前提是已经创建了磁盘配额文件): 复制代码

# repquota /home

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

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

Block limits                File limits

User            used    soft    hard  grace    used  soft  hard  grace

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

root      --  156232       0       0            166     0     0

zhu       --      40       0       0              5     0     0

user1     --      32       0       0              4     0     0

li        --      52       0       0              7     0     0

ljx       --      32       0       0              4     0     0

wlh       --      32       0       0              4     0     0

mysql     --      32       0       0              4     0     0

user2     --      32       0       0              4     0     0

查看上述命令的输出并选择要限制的用户,之后就可以建立配额限制了。

四、建立磁盘配额命令edquota

完成前面的准备工作就可以开始设置磁盘配额了。

【命令格式】

edquota [option] [username] [groupname]

使用edquota命令建立磁盘配额时,需要指定创建配额的用户和用户组名。

【常用选项】

-u:指定限制的用户名。

-g:指定要限制的用户组名。

-p:复制用户或用户组的配额信息。

-t:修改过渡期,即用户的磁盘配额超过软限制的宽限时间。

(1)为用户zhu建立配额:

# edquota -u zhu

此时,命令会启动用户配额配置界面,配置界面文本如下(其实这个界面就是vi编辑器,可以像使用vi那样编辑这些设置):

Disk quotas for user zhu (uid 500):

Filesystem                   blocks       soft       hard     inodes     soft     hard

/dev/sda3                        40          0          0          5        0        0

各自段意义:

Filesystem:当前正在设置配额限制的文件系统。

blocks:当前用户已经使用的磁盘分区空间,单位是KB。

soft:对用户使用的磁盘空间或文件数的软限制(磁盘空间单位是KB)。用户使用的磁盘空间或文件数在过渡期内可以超过这个限制。

hard:对用户使用的磁盘空间或文件数的硬限制。用户使用的磁盘空间或文件数绝对不能超过此限制。

inodes:用户在当前磁盘空间中占用的i节点数,由系统自动统计,用户不必修改此项。

在磁盘配额界面中有两组soft、hard字段,其中前一组soft、hard表示对磁盘空间大小的限制,后一组表示对文件数的限制。

由于文件数限制对一般的使用者而言意义不大,因此设置磁盘配额时,一般不在文件数上设置限制。

注意:修改磁盘配额时,无论是磁盘空间限制,还是文件数限制,硬限制的数值都应该比软限制大。

在此示例中,假定需要设置用户zhu的磁盘空间软限制为1.5GB,硬限制为2GB。可以将配额修改为如下:

Disk quotas for user zhu (uid 500):

Filesystem                   blocks       soft       hard     inodes     soft     hard

/dev/sda3                        40     1500000     200000       5         0        0

保存退出后即可完成设置。

设置上述配额限制后,如果zhu在该文件系统上使用的空间超过1.5GB,系统就会警告用户。当用户数据达到2GB时,将不能存入任何信息。

(2)如果需要查看设置的磁盘配额,可以使用quota命令。例如查看用户zhu的磁盘配额限制:

[root@localhost home]# quota -u zhu

Disk quotas for user zhu (uid 500):

Filesystem  blocks   quota   limit   grace   files   quota   limit   grace

/dev/sda3      40  1500000 2000000               5       0       0

(3)如果要为多个用户设置相同的磁盘配额,可以先设置其中一个用户的磁盘配额,然后使用选项p将配额信息复制给其他用户。

例如将用户zhu的磁盘配额复制给用户li:

[root@localhost home]# edquota -p zhu -u li

[root@localhost home]# quota -u li

Disk quotas for user li (uid 502):

Filesystem  blocks   quota   limit   grace   files   quota   limit   grace

/dev/sda3      52  1500000 2000000               7       0       0

(4)如果需要对某个用户组设置磁盘配额,可以使用编辑配额命令edquota的选项g。例如要设置用户组teacher的磁盘配额:

# edquota -g teacher

查看用户组磁盘配额:

# quota -g teacher

(5)过渡期也称为配额宽限时间,是指用户在磁盘上存放数据的空间或文件数超过了软限制,但没有达到硬限制时,用户还能使用的最长宽限时间。用户应该在过渡时间内,将磁盘使用空间降低到软限制以下,否则将无法正常使用磁盘。

使用命令edquota的选项t可以修改过渡期:

# 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/sda3                     7days                  7days

上面的示例已经将过渡期设置为7天,读者可以自行修改磁盘空间限制(Block grace period)和文件数限制(Inode grace period)的过渡期时间。过渡期的单位可以是days、hours、minutes和seconds。

注意:不要对根分区使用配额限制,否则会导致一些意外的情况发生,例如无法登录系统等。也不要对root用户做配额限制,以免发生意外。

五、开启磁盘配额命令quotaon

设置好用户、用户组配额和过渡期之后,还需要使用quotaon命令,在文件系统上手动开启配额限制功能。

【命令格式】

quotaon [option] filesystem

【常用选项】

-a:开启所有文件系统的磁盘配额功能。

-u:开启用户磁盘配额。

-g:开启用户组磁盘配额。

-v:如果开启成功,就显示提示信息。

【用法示例】

(1)开启指定文件系统的磁盘配额功能:

[root@localhost home]# quotaon -vug /home

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

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

(2)也可以使用选项a开启所有的文件系统的磁盘配额功能:

# quotaon –av

需要注意的是,有些系统可能会自动开启配额,不需要管理员手动开启。

六、关闭磁盘配额命令quotaoff

用法同quotaon。

七、管理磁盘配额

(1)查看磁盘使用情况:

[root@localhost home]# repquota /home

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

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

Block limits                File limits

User            used    soft    hard  grace    used  soft  hard  grace

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

root      --  156232       0       0            166     0     0

zhu       --      40 1500000 2000000              5     0     0

user1     --      32       0       0              4     0     0

li        --      52 1500000 2000000              7     0     0

ljx       --      32       0       0              4     0     0

wlh       --      32       0       0              4     0     0

mysql     --      32       0       0              4     0     0

user2     --      32       0       0              4     0     0

用户名后面的“--”,用于标识用户当前是否已经超出了限制。如果超出了软限制但没有超出硬限制,则标识变为“+-”。

如果有多个文件系统设置了磁盘配额限制,要查看系统中所有磁盘的使用情况,可以使用repquota的选项a。

(2)校准磁盘使用情况:

磁盘配额使用一段时间后,系统记录的磁盘使用情况可能会出现偏差,这时可以采用手动校准的方式保持准确性。

手动校准磁盘的使用情况,需要使用quotacheck命令:

# quotacheck -cug /dev/sda3

0b1331709591d260c1c78e86d0c51c18.png


http://chatgpt.dhexx.cn/article/pw4Wg3cA.shtml

相关文章

Linux复习笔记

Linux复习笔记 常识说明 目录结构 Linux以树型结构管理文件,其最上层文件夹为 / ,也就是根目录。 如图所示,图中展示了一部分文件夹的结构: 所有的文件夹都属于根目录的子文件夹。 安装好系统后,根目录会挂载到一…

linux对目录空间使用限制,Linux quotacheck命令使用详解:检查磁盘的使用空间和限制...

quotacheck命令通过扫描指定的文件系统,获取磁盘的使用情况,创建、检查和修复磁盘配额(quota)文件。执行quotacheck指令,扫描挂入系统的分区,并在各分区的文件系统根目录下产生quota.user和quota.group文件,设置用户和…

Linux常用命令——quotacheck命令

在线Linux命令查询工具(http://www.lzltool.com/LinuxCommand) quotacheck 检查磁盘的使用空间与限制 补充说明 quotacheck命令通过扫描指定的文件系统,获取磁盘的使用情况,创建、检查和修复磁盘配额(quota)文件。执行quotach…

Linux quotacheck失败

我找了多少个帖子才发现解决这个问题的啊...最终还是靠FQ找的这位大佬的文章 http://www.2daygeek.com/quotacheck-error/# 当我在执行quotacheck -avug的时候出现如下的错误: quotacheck: 无法从 /dev/sdb1 上的文件名猜测其格式,请在命令行中指定一个…

Linux系统输入quotacheck -ugcv /dev/sdb1报错

quotacheck -ugcv /dev/sdb1 报错处理 报错大多因为selinux没有关闭 [rootlocalhost fanhuilin]# quotacheck -ugcv /dev/sdb1 quotacheck: Your kernel probably supports journaled quota but you are not using it. Consider switching to journaled quota to avoid runni…

【Shell 命令集合 磁盘管理 】Linux 检查和创建磁盘配额数据库 quotacheck命令使用教程

目录标题 描述语法格式参数说明错误情况 注意事项底层实现示例示例一示例二示例三示例四示例五示例六示例七 用c语言实现结语 Shell 命令专栏:Linux Shell 命令全解析 描述 quotacheck命令是Linux系统中的一个磁盘配额管理工具,用于检查和创建磁盘配额数…

linux quotacheck命令参数及用法详解---Linux系统管理

功能说明:检查磁盘的使用空间与限制。 语  法:quotacheck [-adgRuv][文件系统...] 补充说明:执行quotacheck指令,扫描挂入系统的分区,并在各分区的文件系统根目录下产生quota.user和quota.group文件,设…

第一性原理 《禅与计算机程序设计艺术》 / 陈光剑

第一性原理 《禅与计算机程序设计艺术》 / 陈光剑 任何事物背后必有道理。 什麼是第一性原理 第一性原理(First Principle Thinking),指的是回歸事物最基本的條件,將其拆分成各要素進行解構分析,從而找到實現目標最優路徑的方法。 該原理源於古希臘哲學家亞里士多德提出的一…

“风味人间”与计算机程序设计艺术《禅与计算机程序设计艺术》 / 陈光剑

来自“风味人间”的类比 所谓美食,不过是一次又一次的相逢。我们带您穿越山海之间,偶尔的落地生根,成就万千肴变,随即化作滚滚红尘,穿越香料歧路,几度江湖夜雨后,点亮万家灯火。 《风味人间》 浮华随风去,一菜一江湖。无论置身繁华闹市,还是身居乡野陋巷,世上的滋味,…

《禅与计算机程序设计艺术》/ By 禅与计算机程序设计艺术GPT-4

以《禅与计算机程序设计艺术》为文章标题,写一篇关于软件架构设计哲学思想的文章,不少于10000字。不要列目录,直接写具体的内容。 《禅与计算机程序设计艺术》/ By 禅与计算机程序设计艺术&GPT-4 文章目录 《禅与计算机程序设计艺术》/ By 禅与计算机程序设计艺术&G…

编程语言进化史《禅与计算机程序设计艺术》 / 陈光剑

编程语言概述 计算机编程语言是程序设计的最重要的工具,它是指计算机能够接受和处理的、具有一定语法规则的语言。 编程语言处在不断的发展和变化中,从最初的机器语言发展到如今的2500种以上的高级语言,每种语言都有其特定的用途和不同的发展轨迹。编程语言并不像人类自然语…

《计算机程序设计艺术》系列书

《计算机程序设计艺术》重译自Donald E. Knuth(汉名高德纳)的三卷著作:"The Art of Computer Programming: 1. Fundamental Algorithms; 2. Seminumerical Algorithms; 3. Sorting and Searching";三卷中文名为《基本算法》、《半数值算法》及…

“风味人间”与计算机程序设计艺术《禅与计算机程序设计艺术》

来自“风味人间”的类比 所谓美食,不过是一次又一次的相逢。我们带您穿越山海之间,偶尔的落地生根,成就万千肴变,随即化作滚滚红尘,穿越香料歧路,几度江湖夜雨后,点亮万家灯火。 《风味人间》 浮华随风去,一菜一江湖。无论置身繁华闹市,还是身居乡野陋巷,世上的滋味,…

计算机程序设计艺术初读感

传奇 在计算机领域里,有这么一本神作:作者从20多岁还在读博士时就开始写,一直写到80多岁,写到现在这本书还没完结;为了排版这本书而顺便开发的排版系统推动了整个西文印刷行业的变革;比尔盖茨说&#xff1…

计算机程序设计艺术读后感,计算机程序设计艺术(第1卷)读后感1000字

《计算机程序设计艺术(第1卷)》是一本由[美] Donald E. Knuth著作,清华大学出版社出版的精装图书,本书定价:80.00元,页数:650,特精心从网络上整理的一些读者的读后感,希望对大家能有帮助。 《计算机程序设计艺术(第1卷)》精选点评: ●神书,但是我智力太捉急了。。。感…

你这辈子可能都不需要看《计算机程序设计艺术》了!

“欣哥, 我什么时候可以看《计算机程序设计艺术》? ” “你这辈子可能都不需要看了!” 我在大学的时候并不知道《计算机程序设计艺术》(简称TAOCP)有多牛,他的作者有多牛,人家计划写七卷&#x…

计算机程序设计艺术一二叉树

计算机程序设计艺术一二叉树 概念: 一个有限的节点集合,它或者为空,或者由一个根连同两个二叉树组成。 二叉树的自然方法: 在每个节点内,有两个链接,LLINK和RLINK以及作为“指向树的指针”的链接变量T(T是…

《计算机程序设计艺术》

计算机程序设计艺术(国防工业出版社) 《计算机程序设计艺术》重译自Donald E. Knuth(汉名 高德纳)的三卷著作:"The Art of Computer Programming: 1. Fundamental Algorithms; 2. Seminumerical Algorithms; 3. Sorting and Searching&q…

计算机程序设计艺术 介绍

《计算机程序设计艺术 》(The Art of Computer Programming ),簡稱TAOCP,是高德纳 (Donald Ervin Knuth)编著的关于计算机程序设计的七卷本著作。作者並因此获得美国计算机协会1974年 图灵奖 。[1] 目录 …