售前咨询400-838-0503

如何查看Linux服务器的磁盘使用情况?

发布:2025-03-31 13:20

搜索全部帮助分类的文档

5种高效方法教你全面掌握Linux服务器磁盘使用情况

作为Linux系统管理员或开发者,及时了解服务器磁盘使用状况是日常工作的重要环节。本文将详细介绍5种专业且实用的方法,帮助你全面监控Linux服务器的磁盘空间。

1. df命令:快速概览磁盘使用情况

df(disk filesystem)命令是最基础的磁盘检查工具,可以显示文件系统的磁盘空间使用情况。

df -h

参数说明:

  • -h:以人类可读的格式显示(GB/MB/KB)
  • -T:显示文件系统类型
  • -i:显示inode使用情况

典型输出示例:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        50G   32G   16G  67% /
/dev/sdb1       200G   50G  150G  25% /data

2. du命令:深入分析目录占用空间

du(disk usage)命令可以帮助你找出哪些目录或文件占用了大量空间。

du -sh /var/* | sort -rh | head -10

这条命令将:

  1. 显示/var目录下所有子目录的大小(-s表示总计,-h表示人类可读格式)
  2. 按大小逆序排序
  3. 只显示前10个最大的目录

高级技巧:

# 查找大于100MB的文件
find / -type f -size +100M -exec ls -lh {} \;

3. ncdu:交互式磁盘分析工具

对于喜欢GUI界面的用户,ncdu(NCurses Disk Usage)是一个强大的替代方案。

sudo apt install ncdu   # Ubuntu/Debian
sudo yum install ncdu   # CentOS/RHEL
ncdu /

主要特点:

  • 交互式界面,支持键盘导航
  • 可以快速扫描整个文件系统
  • 支持删除文件和目录
  • 显示百分比和图形化进度条

4. 使用lsof查找被删除但仍占用空间的文件

当进程持有已删除文件的句柄时,磁盘空间不会立即释放。

lsof | grep deleted

解决方法:

  • 重启持有文件句柄的进程
  • 或者直接kill相关进程(谨慎操作)

5. 设置自动化监控和告警

对于生产环境,建议设置自动化监控:

方法一:cron定时任务

# 每天检查一次磁盘空间
0 0 * * * df -h > /var/log/disk-usage.log

方法二:使用监控系统

  • Prometheus + node_exporter
  • Zabbix
  • Nagios

方法三:简单告警脚本


#!/bin/bash
THRESHOLD=90
CURRENT=$(df / | grep / | awk '{ print $5}' | sed 's/%//g')
if [ "$CURRENT" -gt "$THRESHOLD" ]; then
    mail -s "磁盘空间警告: $CURRENT%" [email protected]
fi

磁盘清理实用技巧

发现磁盘空间不足时,可以考虑以下清理操作:

  • 清理旧的日志文件:journalctl --vacuum-size=200M
  • 删除旧的软件包缓存:apt-get clean或yum clean all
  • 查找并删除core dump文件
  • 清理Docker无用资源:docker system prune

总结

掌握Linux服务器磁盘使用情况是系统管理的基础技能。从简单的df/du命令到高级的ncdu工具,再到自动化监控方案,本文介绍了全方位的磁盘空间管理方法。建议将日常检查纳入运维流程,并设置适当的告警阈值,避免因磁盘满导致的服务中断。

记住,预防胜于治疗。定期监控磁盘使用情况,及时清理无用文件,才能确保服务器稳定运行。

按文档操作后还是不行,把机器编号、出问题的时间点和现象截图一起提工单,能少来回一轮。

提交工单