一、磁盘空间监控基础命令解析
在VPS服务器运维中,df命令是查看磁盘使用情况的首选工具。执行df -h
命令时,-h参数会以人类可读的格式(GB/MB)显示各挂载点的空间使用率,这对于快速定位存储瓶颈特别有效。典型输出包含Filesystem(文件系统)、Size(总容量)、Used(已用空间)等关键字段,当Use%列数值超过80%时就需要引起警惕。配合df -i
可以检查inode使用情况,避免因inode耗尽导致的"磁盘未满却无法写入"的异常状态。对于Web服务器而言,/var目录通常是重点监控区域,建议定期执行df -h /var
进行专项检查。
二、目录级存储分析利器du命令
当df显示某个分区空间不足时,du命令就能大显身手。通过du -sh /path/to/dir
可以精确获取指定目录的磁盘占用总量,其中-s参数表示汇总统计,-h同样用于人性化显示。若要找出占用空间最大的子目录,可以组合使用du -h --max-depth=1 /path | sort -hr
,该命令会按大小降序排列一级子目录。在处理日志文件时,du -ah /var/log | grep -E '\.log$' | sort -rh | head -n 10
能快速定位TOP10的日志文件。值得注意的是,du统计的是磁盘实际占用块数,与ls显示的文件大小可能存在差异,这是因为文件系统块分配机制导致的。
三、分区管理神器fdisk实战指南
当VPS需要扩容或调整分区时,fdisk工具必不可少。使用fdisk -l
可以列出所有磁盘设备及其分区表,特别注意识别/dev/vda、/dev/sdb等设备命名规则。创建新分区时需要依次执行:1) 通过n指令新建分区 2) 选择主分区(p)或扩展分区(e) 3) 设置起始扇区(通常默认)4) 定义分区大小(如+20G)。修改分区类型时,t指令配合L参数可以查看所有支持的文件系统类型代码,Linux系统通常使用83(EXT4)或8e(LVM)。完成操作后务必执行w命令写入分区表,使用partprobe
通知内核重读分区信息。对于生产环境,建议先通过fdisk -l /dev/sdX > backup.txt
备份原始分区表。
四、文件系统创建与挂载进阶技巧
分区完成后,需要使用mkfs
系列命令创建文件系统。mkfs.ext4 /dev/sdb1
会在指定分区上创建EXT4文件系统,而mkfs.xfs -f /dev/sdb2
则强制创建XFS文件系统。对于高性能需求场景,可以添加-m crc=0
禁用XFS的校验功能以提升速度。挂载文件系统时,mount /dev/sdb1 /mnt/data
是最基础的形式,但更推荐在/etc/fstab中添加UUID方式的持久化挂载配置。通过blkid
获取分区UUID后,fstab条目应包含文件系统类型、挂载选项(如defaults,noatime)、dump标记和fsck顺序等完整参数。临时调整挂载参数时,mount -o remount,noexec /mnt/data
这样的命令非常实用。
五、LVM逻辑卷管理深度应用
在需要灵活调整存储的VPS环境中,LVM(Logical Volume Manager)提供了强大的解决方案。通过pvcreate /dev/sdb
初始化物理卷,vgcreate vg_data /dev/sdb
创建卷组。创建逻辑卷时,lvcreate -L 50G -n lv_www vg_data
会生成50G大小的逻辑卷,而lvcreate -l 100%FREE -n lv_db vg_data
则利用全部剩余空间。当需要扩容时,先通过vgextend vg_data /dev/sdc
扩展卷组容量,再执行lvextend -L +20G /dev/vg_data/lv_www
增加逻辑卷大小,用resize2fs
或xfs_growfs
调整文件系统。LVM的精髓在于支持快照功能,lvcreate -L 5G -s -n snap_www /dev/vg_data/lv_www
就能创建用于备份的瞬时快照。
六、自动化监控与异常处理方案
为保障VPS稳定运行,建议配置自动化磁盘监控脚本。基础的Shell脚本可以组合df、du命令实现阈值告警,当/分区使用超过90%时自动发送邮件通知。更完善的方案应该包含:1) 每日执行find /var/log -type f -mtime +30 -delete
清理旧日志 2) 使用logrotate管理日志轮转 3) 对MySQL等数据库配置自动清理binlog。当遇到"磁盘已满但找不到大文件"的情况时,可能是被删除但未释放的文件占用了空间,此时lsof | grep deleted
能列出这些"幽灵文件",通过重启相关进程或服务即可释放空间。对于Docker环境,docker system prune
可清理悬空镜像和停止的容器。