- 环境
- 虚拟机:VMware-10.0.7 build-2844087
- Linux系统:CentOS 6.8
- 远程工具:Xshell 6 (Build 0197)
01_Linux系统管理_基础知识_高级文件系统管理_磁盘配额
一、什么是磁盘配额(quota)
- 磁盘配额概念
- 对用户和用户组使用磁盘空间和文件个数的限制
- 限定普通用户,对管理员无效
二、磁盘配额条件
- 磁盘配额需要满足两个条件:
- 内核必须支持磁盘配额
- 系统中必须安装quota工具
2.1、内核必须支持磁盘配额
[root@localhost ~]# grep QUOTA /boot/config-2.6.32-642.el6.x86_64
CONFIG_NETFILTER_XT_MATCH_QUOTA=m
CONFIG_XFS_QUOTA=y
CONFIG_QUOTA=y
CONFIG_QUOTA_NETLINK_INTERFACE=y
CONFIG_PRINT_QUOTA_WARNING=y
# CONFIG_QUOTA_DEBUG is not set
CONFIG_QUOTA_TREE=y
CONFIG_QUOTACTL=y
说明:CONFIG_QUOTA=y 此配置表明内核支持磁盘配额。
2.2 系统中必须安装 quota 工具
[root@localhost ~]# rpm -qa | grep quota
quota-3.17-23.el6.x86_64
说明:系统中有 quota 工具,如果没有使用yum安装即可。
三、概念理解
- 概念理解
- 用户配合和组配额
- 主要给用户配额,可用Shell脚本实现
- 组配额,“先到先得”,实际中无意义
- 限制硬盘容量和文件个数
- 限制使用硬盘空间
- 限制上传文件个数
- 软限制和硬限制
- 警告限制,超出限额报警,但不锁死
- 死限制,超过即停止写入
- 宽限天数
- 达到软限制之后,在宽限一定天数(比如7天),升级为硬限制。
四、磁盘配额规划
- 磁盘配额规划
- 目的:方便日后复习
- 具体i规划:
- 新建一个 5GB 的分区 /dev/sdb1,并挂载到 /disk1
- 新建三个普通用户:user1、user2 和 user3
- 可更改宽限天数
- 注意:
- 本文中不会出现组配额情况,“先到先得”规则对其他用户极不友好,没有实际意义,所以排除在规划之外。
五、磁盘配额步骤
5.1、基本配额步骤
- 1、建立磁盘分区 /dev/sdb1,并挂载到 /disk1
[root@localhost ~]# fdisk /dev/sdb
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): p
Disk /dev/sdb: 21.5 GB, 21474836480 bytes
28 heads, 40 sectors/track, 37449 cylinders
Units = cylinders of 1120 * 512 = 573440 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0008e6ae
Device Boot Start End Blocks Id System
/dev/sdb1 2 3488 1951744 83 Linux
[root@localhost /]# mount /dev/sdb1 /disk
/dev/sdb1 looks like swapspace - not mounted <-- /dev/sdb1是swap分区,无法挂载
mount: you must specify the filesystem type <-- 重新指定文件类型
[root@localhost /]# mkfs -t ext4 /dev/sdb1 <-- 指定 ext4 文件类型
mke2fs 1.41.12 (17-May-2010)
文件系统标签=
操作系统:Linux
块大小=4096 (log=2)
...
正在写入inode表: 完成
Creating journal (8192 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
This filesystem will be automatically checked every 36 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@localhost /]# mount /dev/sdb1 /disk <-- 重新挂载,不再报错
- 2、创建需要限制的用户 user1、user2、user3
[root@localhost ~]# useradd user1
[root@localhost ~]# passwd user1
[root@localhost ~]# useradd user2
[root@localhost ~]# passwd user2
[root@localhost ~]# useradd user3
[root@localhost ~]# passwd user3
[root@localhost ~]# vi /etc/passwd
...
user1:x:500:500::/home/user1:/bin/bash
user2:x:501:501::/home/user2:/bin/bash
user3:x:502:502::/home/user3:/bin/bash
- 3、在分区上开启磁盘配额功能