1. 磁盘配额管理

1.1 配额概念与类型

配额类型说明

  • 硬限制(Hard Limit):用户绝对不能超过的磁盘空间限制
  • 软限制(Soft Limit):允许用户暂时超过的限制,系统会发出警告
  • 宽限期(Grace Period):超过软限制后允许保留的时间(默认7天)

1.2 配额实施完整步骤

  1. 修改fstab文件

    1
    2
    # 在/etc/fstab中添加usrquota和/或grpquota选项
    /dev/sda1 /home ext4 defaults,usrquota,grpquota 0 2
  2. 重新挂载文件系统

    1
    2
    umount /home
    mount -o remount /home
  3. 创建配额文件

    1
    2
    touch /home/aquota.user /home/aquota.group
    chmod 600 /home/aquota.*
  4. 初始化配额数据库

    1
    quotacheck -cugm /home
  5. 启用配额系统

    1
    quotaon -avug
  6. 为用户设置配额

    1
    edquota username

1.3 配额管理命令详解

quota - 显示配额信息

1
2
3
quota -u username  # 显示用户配额
quota -g groupname # 显示组配额
quota -v # 显示详细信息

quotacheck - 检查配额

1
2
quotacheck -avug  # 检查所有文件系统配额
quotacheck -cug /home # 检查指定文件系统

quotaon/quotaoff - 启用/禁用配额

1
2
quotaon -avug     # 启用所有配额
quotaoff /home # 禁用指定文件系统配额

edquota - 编辑配额

1
2
3
edquota -u username  # 编辑用户配额
edquota -p template_user new_user # 复制配额设置
edquota -t # 修改宽限期

repquota - 报告配额状态

1
2
repquota -a       # 报告所有文件系统配额状态
repquota -u /home # 报告/home的用户配额

2. 文件系统层次标准(FHS)

2.1 核心目录结构

目录 完整描述 典型内容
/bin 基础命令二进制文件 ls, cp, mv等基本命令
/sbin 系统管理二进制文件 fdisk, fsck, ifconfig等
/etc 系统配置文件 passwd, fstab, network等配置文件
/dev 设备文件 sda, tty, null等设备节点
/lib 系统库文件 系统运行所需共享库
/mnt 临时挂载点 临时挂载文件系统的目录
/opt 可选应用软件包 第三方应用程序
/proc 进程和内核信息 虚拟文件系统,提供系统信息
/root root用户主目录 root用户的个人文件和配置
/boot 启动加载文件 vmlinuz, initramfs, grub等
/home 用户主目录 普通用户的个人目录
/tmp 临时文件 系统重启后通常清空
/var 可变数据文件 日志、邮件、数据库等
/usr 用户程序资源 应用程序、文档、库文件等

3. 分区与文件系统管理

3.1 分区管理

fdisk 完整操作流程

1
fdisk /dev/sdb

交互命令列表:

  • n:创建新分区
  • d:删除分区
  • p:显示分区表
  • t:更改分区类型
  • a:切换启动标志
  • w:写入并退出
  • q:不保存退出
  • m:显示帮助菜单

3.2 文件系统创建与管理

mkfs 命令集

1
2
3
4
mkfs -t ext4 /dev/sdb1      # 创建ext4文件系统
mkfs.ext4 /dev/sdb1 # 同上
mkfs.xfs /dev/sdb2 # 创建XFS文件系统
mkfs.btrfs /dev/sdb3 # 创建Btrfs文件系统

交换空间管理

1
2
3
4
mkswap /dev/sdb4            # 创建交换分区
swapon /dev/sdb4 # 启用交换分区
swapon -s # 显示交换空间状态
swapoff /dev/sdb4 # 禁用交换分区

3.3 文件系统检查与维护

fsck 系列命令

1
2
3
4
fsck /dev/sdb1              # 基本文件系统检查
fsck -y /dev/sdb1 # 自动修复错误
e2fsck -p /dev/sdb1 # ext文件系统自动修复
xfs_repair /dev/sdb2 # XFS文件系统修复

tune2fs 调整参数

1
2
3
tune2fs -c 30 /dev/sdb1     # 设置每30次挂载后检查
tune2fs -i 15d /dev/sdb1 # 设置15天间隔检查
tune2fs -L DATA /dev/sdb1 # 设置卷标为DATA

3.4 空间监控命令

df 详细用法

1
2
3
4
df -h                       # 人类可读格式
df -i # 显示inode使用情况
df -T # 显示文件系统类型
df --total # 显示总计信息

du 详细用法

1
2
3
4
du -sh /var/log             # 显示目录总大小
du -ah /home # 显示所有文件和目录大小
du -csh * # 显示当前目录各项目大小和总计
du --max-depth=1 /usr # 只显示一级子目录大小

4. 文件搜索命令

4.1 find 命令完整用法

基本语法

1
find [路径] [选项] [操作]

常用示例

1
2
3
4
5
6
find / -name "*.conf"               # 按名称查找
find /home -user alice # 按属主查找
find /var/log -mtime -7 # 查找7天内修改的文件
find /tmp -size +10M # 查找大于10MB的文件
find . -perm 644 # 查找权限为644的文件
find /etc -type f -exec grep -l "error" {} \; # 结合grep

4.2 locate/updatedb 系统

1
2
3
locate passwd              # 快速查找文件
updatedb # 更新数据库
updatedb -e /mnt # 排除/mnt目录

4.3 which/whereis/type

1
2
3
which ls                   # 查找命令路径
whereis python # 查找命令相关文件
type -a cd # 显示命令类型

5. 挂载管理

5.1 挂载选项详解

选项 完整描述
async/sync 异步/同步写入
auto/noauto 是否允许mount -a自动挂载
exec/noexec 是否允许执行二进制文件
ro/rw 只读/读写模式
suid/nosuid 是否允许SUID/SGID
user/nouser 是否允许普通用户挂载
defaults 默认选项(rw,suid,dev,exec,auto,nouser,async)

5.2 mount/umount 完整用法

1
2
3
4
5
mount /dev/sdb1 /mnt/data           # 基本挂载
mount -o remount,ro /mnt/data # 重新挂载为只读
mount -t nfs server:/share /mnt/nfs # 挂载NFS
umount /mnt/data # 卸载
umount -l /mnt/data # 延迟卸载

5.3 /etc/fstab 文件格式

1
2
3
# 设备文件/挂载点/文件系统类型/选项/备份标记/检查顺序
/dev/sdb1 /data ext4 defaults 0 2
UUID=xxxx /home xfs defaults 0 1

6. 逻辑卷管理(LVM)

6.1 LVM 基本概念

  1. PV(Physical Volume):物理卷,实际存储设备
  2. VG(Volume Group):卷组,由PV组成的存储池
  3. LV(Logical Volume):逻辑卷,从VG划分的可挂载空间
  4. PE(Physical Extent):物理块,LVM最小分配单元(默认4MB)
  5. LE(Logical Extent):逻辑块,与PE一一对应

6.2 LVM 完整操作流程

物理卷(PV)管理

1
2
3
4
pvcreate /dev/sdb /dev/sdc          # 创建PV
pvdisplay # 显示PV信息
pvmove /dev/sdb # 迁移PV数据
pvremove /dev/sdb # 删除PV

卷组(VG)管理

1
2
3
4
5
vgcreate vg_data /dev/sdb /dev/sdc  # 创建VG
vgextend vg_data /dev/sdd # 扩展VG
vgreduce vg_data /dev/sdb # 缩减VG
vgdisplay # 显示VG信息
vgremove vg_data # 删除VG

逻辑卷(LV)管理

1
2
3
4
5
6
lvcreate -L 50G -n lv_home vg_data  # 创建50G逻辑卷
lvextend -L +10G /dev/vg_data/lv_home # 扩展10G
lvreduce -L -5G /dev/vg_data/lv_home # 缩减5G
lvresize -L 60G /dev/vg_data/lv_home # 调整到60G
lvdisplay # 显示LV信息
lvremove /dev/vg_data/lv_home # 删除LV

文件系统扩展

1
2
3
4
5
# 对于ext2/3/4文件系统
resize2fs /dev/vg_data/lv_home

# 对于XFS文件系统
xfs_growfs /dev/vg_data/lv_home

6.3 LVM 快照功能

1
2
3
4
lvcreate -L 10G -s -n snap_home /dev/vg_data/lv_home  # 创建快照
mount /dev/vg_data/snap_home /mnt/snapshot # 挂载快照
umount /mnt/snapshot # 卸载快照
lvremove /dev/vg_data/snap_home # 删除快照

6.4 LVM 信息查看命令

1
2
3
4
5
6
7
pvs        # 简要PV信息
vgs # 简要VG信息
lvs # 简要LV信息
pvdisplay # 详细PV信息
vgdisplay # 详细VG信息
lvdisplay # 详细LV信息
lsblk # 块设备层次结构