[Linux实用命令]-11-磁盘配额实例详解

引言

这篇文章介绍一下磁盘配额;利用磁盘配额这种技术,系统管理员可以限制某个用户在某个硬盘分区可使用的大小,和可以创建文件数量的多少;目前Linux系统和Windows系统都支持这种技术。

文章目录

  • 0×1.磁盘配额术语介绍
  • 0×2.Linux磁盘配额实例
  •     a.实验环境介绍
    
  •     b.修改/etc/fstab添加支持磁盘配额选项
    
  •     c.创建磁盘配额配置文件
    
  •     d.实现磁盘配额限制
    
  •     e.关闭磁盘配额
    

0×1.磁盘配额术语介绍

磁盘配额使用条件:

磁盘配额实施的对象是硬盘分区,并且Linux的内核必须支持磁盘配额这种技术,本例所使用的CentOS7是完全支持的;
磁盘配额的记录文件保存在开启磁盘配额分区的根目录下面,它们是aquota.user和aquota.group;
磁盘配额只对一般身份用户有效,对root权限用户无效;

磁盘配额的相关术语:

最低限制(软限制,soft):最低限制容量(可以被超过,但会出现警告,超过的部分会保存到宽限时间到期);
最高限制(硬限制,hard): 不能被超越的限制;
宽限时间:当用户使用的空间超过了最低限制但还没到达最高限制时,在这个宽限时间到期前必须将超额的数据降低到最低限制以下(默认为7天),当宽限时间到期,系统将自动清除超出的数据;

0×2.Linux磁盘配额实例

a.实验环境介绍

系统:CentOS7;
所用软件:quota,CentOS7默认已安装,CentOS6可能需要yum在线安装此软件,前面的文章已经介绍过yum的使用方法,这里不再赘述;
硬盘及分区:/dev/sda1(系统所在分区),/dev/sdb1(20G),已经格式化为ext4文件系统;
所有的磁盘配额操作都在/dev/sdb1中进行;

b.修改/etc/fstab添加支持磁盘配额选项

首先在系统新建一个用于挂载分区的目录,然后修改/etc/fstab添加一条自动挂载分区条目:

#使用管理员权限在系统根目录,新建一个目录sdb1(并非一定要在根目录创建挂载目录)
qing@qingsword.com:~$ sudo mkdir /sdb1

#使用vi编辑/etc/fstab,在末尾添加一行自动挂载,支持quota
qing@qingsword.com:~$ sudo vi /etc/fstab

#将下面这一行添加到末尾,第一个字段为被挂载的分区,第二个字段为挂载的目录,第三个字段是被挂载的分区的文件系统类型,后面的几个字段是支持quota的参数。各字段用空格分隔
/dev/sdb1 /sdb1 ext4 defaults,usrquota,grpquota 0 0

#保存,重新启动计算机,查看sdb1挂载信息
qing@qingsword.com:~$ mount | grep /dev/sdb1
.....
#只要括号里面显示"usrquota,grpquota",说明可以使用磁盘配额了
/dev/sdb1 on /sdb1 type ext4 (rw,usrquota,grpquota)

c.创建磁盘配额配置文件

#为了让其他用户可以使用这个分区,先将这个实验用的分区权限修改成777
qing@qingsword.com:~$ sudo chmod 777 /sdb1

#创建磁盘配额配置文件,命令参数解释如下:
#-v 显示扫描过程;
#-u 针对扫描情况与目录的使用情况建立aquota.user;
#-g 针对用户扫描文件与使用情况建立aquota.group;
qing@qingsword.com:~$ sudo quotacheck -vug /sdb1

#接着就能看到分区目录中自动生成了两个配置文件
qing@qingsword.com:~$ ls /sdb1
aquota.group  aquota.user

d.实现磁盘配额限制

#创建普通测试用户qingsword,配置密码
qing@qingsword.com:~$ sudo useradd qingsword
qing@qingsword.com:~$ sudo passwd qingsword

#配置qingsword用户使用/dev/sdb1分区的限额
qing@qingsword.com:~$ sudo edquota -u qingsword

#输入上面的命令后,会进入一个vi编辑界面
#对其中各字段解释如下:
#Filesystem下显示实现磁盘配额的分区;
#blocks下为当前已经使用的大小,不用修改;
#soft为软限制,超出后会给出警告,超出的部分默认会保存7天;
#hard为硬限制,不可超越的限制(软硬限制默认单位都是KB);
#后面的两个相同的soft、hard分别表示分区中这个用户可以创建的文件数目软硬限制;
#本例中设置,qingsword可以使用/dev/sdb1分区的软限制大小10KB,硬限制20KB,可创建的文件个数软限制是3个,硬限制5个;
Disk quotas for user qingsword (uid 500):
Filesystem blocks soft hard inodes soft hard
/dev/sdb1    0     10   20    0     3    5

#修改保存退出后,开启这个分区的磁盘配额
qing@qingsword.com:~$ sudo quotaon /sdb1

如果操作无误,现在磁盘配额就已经开始起作用了,使用qingsword用户登录测试如下:

#切换到qingsword用户
qing@qingsword.com:~$ su qingsword

#进入/dev/sdb1分区
qingsword@qingsword.com:~$  cd /sdb1

#使用dd命令进行文件写入测试,
# if=/dev/zero 表示从"/dev/zero"文件输出,of=/sdb1/testfile1 表示输入到"/sdb1/testfile1"文件中,也就是,从/dev/zero这个文件中读取垃圾数据写入/sdb1/testfile1这个文件中;
# bs=1K 表示一次读取写入的大小是1KB,count=12 表示读取12次;
#所以理论上最后写入/sdb1/testfile1的数据应该是12KB
qingsword@qingsword.com:/sdb1$ dd if=/dev/zero of=/sdb1/testfile1 bs=1K count=12

sdb1: warning, user block quota exceeded.
#因为针对qingsword用户在这个分区的软限制设置是10KB,所以这里给出了警告信息
12+0 records in
12+0 records out
12288 bytes (12 kB) copied

#可以查看到testfile1的大小是12KB
qingsword@qingsword.com:/sdb1$ ls -l testfile1
-rw-rw-r--. 1 qingsword qingsword 12288 Jan 13 16:24 testfile1

#测试向第二个文件/sdb1/testfile2写入10KB垃圾数据
qingsword@qingsword.com:/sdb1$ dd if=/dev/zero of=/sdb1/testfile2 bs=1K count=10

sdb1: write failed, user block limit reached.
dd: writing `/sdb1/testfile2': Disk quota exceeded
#出现了一个警告,并且下方显示只有8K的数据被复制,这是因为我们设置的硬限制是20KB
9+0 records in
8+0 records out
8192 bytes (8.2 kB) copied

#第一个文件已经占用了12KB的数据,第二个文件仅写入了8KB的数据,硬限制是不能被超越的,而软限制10KB是可以被超越的,超越的数据,会在这个分区中默认保存7天,然后系统将自动删除这些数据
qingsword@qingsword.com:/sdb1$ ls -l testfile1 testfile2
-rw-rw-r--. 1 qingsword qingsword 12288 Jan 13 16:33 testfile1
-rw-rw-r--. 1 qingsword qingsword  8192 Jan 13 16:33 testfile2

#下面测试文件数量限制,按照前面的介绍和我们的配置,超过3个文件的软限制时会给出警告,而无法超过5个文件的硬限制,使用touch来创建空文件
qingsword@qingsword.com:/sdb1$ touch testfile3

#超过3个文件时出现了警告
qingsword@qingsword.com:/sdb1$ touch testfile4
sdb1: warning, user file quota exceeded.


qingsword@qingsword.com:/sdb1$ touch testfile5

#touch第6个文件的时候提示创建失败
qingsword@qingsword.com:/sdb1$ touch testfile6
sdb1: write failed, user file limit reached.
touch: cannot touch `testfile6': Disk quota exceeded

#超过文件数量软限制的部分同样会被保存7天,然后被系统自动删除
qingsword@qingsword.com:/sdb1$ ls
aquota.group  testfile2  testfile4
aquota.user   testfile1   testfile3  testfile5

#查看当前用户的磁盘配额使用情况,两个已经超出的配置分别是文件大小和文件数量,宽限时间还有6天
qingsword@qingsword.com:/sdb1$ quota -vugs
Disk quotas for user qingsword (uid 1002):
Filesystem space quota limit grace files quota limit grace
dev/sdb1    20K*  10K  20K   6days   5*    3     5   6days

#可以使用root权限修改宽限时间
qing@qingsword.com:~$ sudo edquota -t

e.关闭磁盘配额

#关闭单个磁盘的磁盘配额
qing@qingsword.com:~$ sudo quotaoff /sdb1

#关闭所有已经开启的磁盘配额
qing@qingsword.com:~$ sudo quotaoff -a

#反之,开启所有磁盘配额
qing@qingsword.com:~$ sudo quotaon -a

#如果不再使用磁盘配额,可以将配置文件也删除
qing@qingsword.com:~$ sudo rm -rf /sdb1/aquota.*

#最后删除/etc/fstab中的自动挂载即可
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,163评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,301评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,089评论 0 352
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,093评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,110评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,079评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,005评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,840评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,278评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,497评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,667评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,394评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,980评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,628评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,649评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,548评论 2 352

推荐阅读更多精彩内容