关闭

磁盘配额

标签: 磁盘管理linux应用
456人阅读 评论(0) 收藏 举报
分类:

转自:http://www.apelearn.com/study_v2/chapter9.html

磁盘配额

磁盘配合其实就是给每个用户分配一定的磁盘额度,只允许他使用这个额度范围内的磁盘空间。在linux系统中,是多用户多任务的环境,所以会有很多人共用一个磁盘的情况。针对每个用户去限定一定量的磁盘空间是有必要的,这样才显得公平。随着硬件成本的降低,服务器上的磁盘资源似乎不再刻意的去限制了,所以磁盘配额也就可有可无了,但是你也需要了解一下这部分内容,用到时必须会操作。

在linux中,用来管理磁盘配额的东西就是quota了。如果你的linux上没有quota,则需要你安装这个软件包 quota-3.13-5.el5.RPM (其实版本是多少无所谓了,关键是这个软件包)。quota在实际应用中是针对整个分区进行限制的。比如,如果我们限制了/dev/sdb1这个分区,而/dev/sdb1 是挂载在/home 目录下的,那么/home 所有目录都会受到限制。

quota 这个模块主要分为quota quotacheck quotaoff quotaon quotastats edquota setquota warnquota repquota这几个命令,下面就分别介绍这些命令。

命令 : quota

“quota” 用来显示某个组或者某个使用者的限额。

语法:quota [-guvs] [user,group]

“-g” 显示某个组的限额

“-u” 显示某个用户的限额

“-v” 显示的意思

“-s” 选择inod或硬盘空间来显示

命令 : quotacheck

“quotacheck” 用来扫描某一个磁盘的quota空间。

语法:quotacheck [-auvg] /path

“-a” 扫描所有已经mount的具有quota支持的磁盘

“-u” 扫描某个使用者的文件以及目录

“-g” 扫描某个组的文件以及目录

“-v” 显示扫描过程

“-m” 强制进行扫描

命令 : edquota

“edquota” 用来编辑某个用户或者组的quota值。

语法:edquota [-u user] [-g group] [-t]

“-u” 编辑某个用户的quota

“-g” 编辑某个组的quota

“-t” 编辑宽限时间

“-p” 拷贝某个用户或组的quota到另一个用户或组

当运行 edquota -u user 时,系统会打开一个文件,你会看到这个文件中有7列,它们分别代表的含义是:

“Filesystem” 磁盘分区,如/dev/sdb5

“blocks” 当前用户在当前的Filesystem中所占用的磁盘容量,单位是Kb。该值请不要修改。

“soft/hard” 当前用户在该Filesystem内的quota值,soft指的是最低限额,可以超过这个值,但必须要在宽限时间内将磁盘容量降低到这个值以下。hard指的是最高限额,即不能超过这个值。当用户的磁盘使用量高于soft值时,系统会警告用户,提示其要在宽限时间内把使用空间降低到soft值之下。

“inodes” 目前使用掉的inode的状态,不用修改。

命令 : quotaon

“quotaon” 用来启动quota,在编辑好quota后,需要启动才能是quota生效

语法:quotaon [-a] [-uvg directory]

“-a” 全部设定的quota启动

“-u” 启动某个用户的quota

“-g” 启动某个组的quota

“-s” 显示相关信息

命令 : quotaoff

“quotaoff” 用来关闭quota, 该命令常用只有一种情况 quotaoff -a 关闭全部的quota.

以上讲了很多quota的相关命令,那么接下来阿铭教你如何在实践应用中去做这个磁盘配额。整个执行过程如下:

首先先确认一下,你的/home目录是不是单独的挂载在一个分区下,用df 查看即可。如果不是则需要你跟我一起做。否则这一步即可省略。

文件系统                 1K-块      已用      可用 已用% 挂载点
/dev/sda3             14347632   1899376  11719424  14% /
tmpfs                   163308         0    163308   0% /dev/shm
/dev/sda1                99150     26808     67222  29% /boot

阿铭的linux系统中,/home并没有单独占用一个分区。所以需要把/home目录挂载在一个单独的分区下,因为quota是针对分区来限额的。下面阿铭把 /dev/sdb5 挂载到/home 目录下, 编辑 /etc/fstab 把刚才添加的那行修改为:

UUID=c61117ca-9176-4d0b-be4d-1b0f434359a7              /home                 ext4    defaults        0 0

保存 /etc/fstab 后,运行 mount -a 命令挂载全部的分区。

[root@localhost ~]# mount -a
[root@localhost ~]# df -h
文件系统              容量  已用  可用 已用%% 挂载点
/dev/sda3              14G  1.9G   12G  14% /
tmpfs                 160M     0  160M   0% /dev/shm
/dev/sda1              97M   27M   66M  29% /boot
/dev/sdb5             989M   18M  921M   2% /home

此时的 /home 为一个单独分区了。

  1. 建立测试账户

首先建立一个test用户,则同时建立了一个test组。其中uid和gid都为511 ,然后又建立一个test1账号,使其加入test组,查看/etc/passwd文件发现test和test1用户的gid都为511.

[root@localhost ~]# useradd test
[root@localhost ~]# grep test /etc/passwd
test:x:511:511::/home/test:/bin/bash
[root@localhost ~]# useradd -g 511 test1
[root@localhost ~]# grep test1 /etc/passwd
test1:x:512:511::/home/test1:/bin/bash
  1. 打开磁盘的quota功能

默认linux并没有对任何分区做quota的支持,所以需要我们手动打开磁盘的quota功能,你是否记得,在前面内容中分析/etc/fstab文件的第四列时讲过这个quota选项(usrquota, grpquota),没错,要想打开这个磁盘的quota支持就是需要修改这个第四列的。用vi编辑/etc/fstab 编辑刚才加的那一行,如下:

UUID=c61117ca-9176-4d0b-be4d-1b0f434359a7     /home        ext4    defaults,usrquota,grpquota     0 0

保存 /etc/fstab 后,重新挂载/home分区。

[root@localhost ~]# umount /home/
[root@localhost ~]# mount -a
[root@localhost ~]# mount
/dev/sda3 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/sdb5 on /home type ext4 (rw,usrquota,grpquota)

使用 mount 命令可以查看到 /home 分区已经加上了 “usrquota,grpquota” 两个配额相关的参数。

  1. 扫描磁盘的使用者使用状况,并产生重要的aquota.group与aquota.user

这一步就需要用到quotacheck了,aquota.group与aqouta.user分别是组以及用户磁盘配额需要的配置文件。如果没有这两个文件,则磁盘配额是不会生效的。

[root@localhost ~]# quotacheck -augv

可能会有一些错误信息,不要管它。看一看你的/home分区下是否多了两个文件(aquota.group, aquota.user)

[root@localhost ~]# ll /home/
总用量 44
-rw------- 1 root  root  7168 5月  12 02:07 aquota.group
-rw------- 1 root  root  8192 5月  12 02:07 aquota.user
drwxr-xr-x 2 root  root  4096 5月  12 00:11 dir1
drwx------ 2 root  root 16384 5月  11 23:18 lost+found
drwx------ 3 test  test  4096 5月  12 01:59 test
drwx------ 3 test1 test  4096 5月  12 02:00 test1

如果有了,则可以进入下一步了。

  1. 启动quota配额
[root@localhost ~]# quotaon -av
/dev/sdb5 [/home]: group quotas turned on
/dev/sdb5 [/home]: user quotas turned on
  1. 编辑用户磁盘配额

先来设定test账户的配额,然后直接把test的配额拷贝给test1即可。这里就需要用到edquota了。

[root@localhost ~]# edquota -u test

将下面内容

/dev/sdb5                        20          0          0          5        0        0

修改为:

/dev/sdb5                        20          20000          30000          5        0        0

其中单位是Kb,所以soft 值大约为20Mb,hard值为30Mb,保存这个文件,保存的方式跟vi一个文件的方式一样的。下面将test的配额复制给test1.

[root@localhost ~]# edquota -p test test1

下面继续设定宽限时间:

[root@localhost ~]# edquota -t

将7days 改为 1days

/dev/sdb5                     1days                  1days

下面查看一下test以及test1用户的配额吧。

[root@localhost ~]# quota -uv test test1
Disk quotas for user test (uid 511):
     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
      /dev/sdb5      20   20000   30000               5       0       0
Disk quotas for user test1 (uid 512):
     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
      /dev/sdb5      20   20000   30000               5       0       0
  1. 编辑组磁盘配额
[root@localhost ~]# edquota -g test

修改为:

/dev/sdb5                        40          40000          50000         10        0        0

设定组test的soft配额值为40M,hard值为50M。下面查看组test的配额。

[root@localhost ~]# quota -gv test
Disk quotas for group test (gid 511):
     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
      /dev/sdb5      40   40000   50000              10       0       0
  1. 设定开机启动

前面已经讲到启动磁盘配额的命令是 quotaon -aug 所以要想开机启动,只需将这条命令加入到 /etc/rc.d/rc.local文件即可。

[root@localhost ~]# echo "quotaon -aug" >> /etc/rc.d/rc.local
0
0
查看评论

Linux下磁盘配额设置

Linux是多用户多任务的操作系统,这就难免出现多个用户共享磁盘的情况,如何使多个用户公平的使用磁盘,就是磁盘配置要解决的问题。当然也可以在没创建一个用户的时候,将它的主目录建在一个单独的逻辑分区上,但是这样太麻烦了,也不灵活。 以针对用户的配置为例,设置用户的磁盘配额。 环境:Red ...
  • CHEN_JP
  • CHEN_JP
  • 2012-08-05 16:19
  • 10277

《鸟哥的Linux私房菜》读书笔记:Linux磁盘配额命令quota详解

quota使用的前提条件: ①仅能针对整个FileSystem。 ②Linux核心必须支持quota。 ③quota的记录文件aquota.user,aquota.group。 ④仅对一般用户有效(root无效)。 quota可以设定的项目: ①block&inode: bloc...
  • u011801161
  • u011801161
  • 2015-05-07 21:24
  • 657

Hadoop 磁盘配额测试

Hadoop 磁盘配额测试
  • dai451954706
  • dai451954706
  • 2015-08-19 11:04
  • 995

容易被忽视的Linux磁盘配额设置

容易被忽视的Linux磁盘配额设置 转自http://yuan2.blog.51cto.com/446689/1695356 1.          实验需求: 1)&#...
  • laughing_cui
  • laughing_cui
  • 2015-09-18 20:56
  • 1458

Linux入门:用户磁盘配额quota

1、如果任何用户可以随意使用磁盘空间,也是一件很可怕的事情,磁盘被写满之后,各种应用也将无法运行,甚至启动。使硬盘空间被占满有很多种方法:dd if=/dev/zero方法,或者copy大量无用文件等等 2、用户的家目录(home)应该使用单独的分区,而不是在根(/)分区中。如果在根分区中,任何用户...
  • foryouslgme
  • foryouslgme
  • 2016-11-03 15:25
  • 2575

Linux下实现磁盘配额的两种方法

http://bbs.51cto.com/thread-561048-1.html Linux下实现磁盘配额的两种方法                   &#...
  • jajavaja
  • jajavaja
  • 2015-11-13 10:34
  • 2761

centos6上增加磁盘配额限制

建五个用户,均需要进行磁盘配额限制,每个用户的配额为 10MB (hard) 以及 8MB (soft) 0 环境 [root@localhost ~]# uname -a Linux localhost.localdomain 2.6.32-431.el6.x86_64 #1 SMP ...
  • BeiiGang
  • BeiiGang
  • 2015-01-15 16:37
  • 2127

Linux quota命令参数及用法详解---Linux磁盘配额限制设置和查看命令

功能说明:显示磁盘已使用的空间与限制。 语  法:quota [-quvV][用户名称...] 或 quota [-gqvV][群组名称...] 补充说明:执行quota指令,可查询磁盘空间的限制,并得知已使用多少空间。 参  数:   -g   列...
  • dazhi_100
  • dazhi_100
  • 2014-05-14 13:12
  • 1039

Linux的磁盘配额详解(Quota)

1. 检查内核情况 检查当前内核是否支持quota,当前内核配置文件在/boot下 如果当前内核不支持quota,需要重新编译内核将quota support编译进核心:     File systems ...
  • AstrayLinux
  • AstrayLinux
  • 2011-12-03 23:47
  • 5411

linux(ubuntu)磁盘配额(quota命令)

简述在ubuntu系统中进行磁盘配额,记录具体过程。 ubuntu 16.04 LTS(虚拟机) quota命令ubuntu系统默认没有安装quota命令,需要自行安装,输入命令sudo apt-get install quota安装途中出现提示,输入y回车。 安装完成后,在终端输入quota...
  • haofan_
  • haofan_
  • 2017-10-24 23:48
  • 2086
    个人资料
    • 访问:199067次
    • 积分:3031
    • 等级:
    • 排名:第13714名
    • 原创:100篇
    • 转载:42篇
    • 译文:2篇
    • 评论:14条
    文章分类
    最新评论