温馨提示×

Linux清理技巧:如何监控磁盘空间

小樊
44
2025-10-19 09:13:17
栏目: 云计算

Linux监控磁盘空间的常用技巧

1. 使用df命令查看文件系统磁盘空间概览

df(Disk Free)是Linux系统中最基础的磁盘空间监控工具,用于显示所有挂载文件系统的总空间、已使用空间、可用空间及挂载点等信息。常用选项包括:

  • -h:以人类可读格式(KB、MB、GB)显示大小,便于快速识别;
  • -T:显示文件系统类型(如ext4、xfs),帮助区分不同存储介质;
  • -i:查看inode使用情况(inode耗尽会导致无法创建新文件,即使磁盘空间充足)。
    示例命令:df -hT(显示所有挂载点的磁盘空间及文件系统类型)、df -i /(查看根分区的inode使用情况)。

2. 使用du命令分析目录/文件占用情况

du(Disk Usage)用于估算文件或目录的磁盘使用量,帮助定位占用空间大的具体对象。常用选项包括:

  • -h:人类可读格式;
  • -s:仅显示总计(避免递归显示子目录的详细信息);
  • -a:显示所有文件和目录(包括隐藏文件);
  • --max-depth=N:限制递归深度(如--max-depth=1显示当前目录下一级子目录的大小)。
    示例命令:du -sh /var/log(查看/var/log目录的总大小)、du -h --max-depth=1 /home(显示/home目录下一级子目录的大小)。

3. 使用ncdu工具进行交互式磁盘分析

ncdu(NCurses Disk Usage)是基于文本的交互式工具,通过图形化界面快速定位大文件和目录。它比du更直观,支持键盘导航(方向键移动、Enter进入目录、d删除文件)。
安装方法:Debian/Ubuntu系统使用sudo apt-get install ncdu,CentOS/RHEL系统使用sudo yum install ncdu
使用方法:ncdu /path/to/directory(如ncdu /查看根分区),进入界面后可逐层分析目录大小。

4. 查找大文件的实用技巧

若需快速找出占用空间大的文件,可结合finddusort命令:

  • 按大小查找文件find /path/to/search -type f -size +100M(查找/path/to/search目录下大于100MB的文件);
  • 按大小排序文件du -ah /path/to/search | sort -nr | head -n 20(显示指定目录下最大的20个文件/目录);
  • 结合finddufind /path/to/search -type f -print0 | xargs -0 du -h | sort -hr | head -n 20(避免文件名含空格时的错误,更安全)。

5. 监控磁盘空间变化的自动化脚本

通过编写脚本定期检查磁盘使用率,并在使用率超过阈值时发送警报,可实现自动化监控。示例脚本:

#!/bin/bash
PARTITION="/"  # 监控的挂载点(如根分区)
THRESHOLD=80   # 警报阈值(%)
USE=$(df -h $PARTITION | tail -1 | awk '{print $5}' | sed 's/%//g')  # 获取使用率
if [ $USE -gt $THRESHOLD ]; then
    echo "Warning: Partition ${PARTITION} usage at ${USE}% on $(hostname) as on $(date)" | mail -s "Disk Space Alert" admin@example.com
fi

将脚本保存为/usr/local/bin/check_disk.sh,添加执行权限(chmod +x /usr/local/bin/check_disk.sh),并通过crontab -e添加定时任务(如每30分钟执行一次):
*/30 * * * * /usr/local/bin/check_disk.sh

6. 图形化磁盘监控工具

对于习惯图形界面的用户,可使用以下工具实现直观的磁盘空间监控:

  • GNOME Disk Usage Analyzer(Baobab):适用于GNOME桌面环境,通过树状图显示目录结构及空间占用,支持扫描本地或远程磁盘。安装命令:sudo apt-get install baobab(Debian/Ubuntu)、sudo yum install baobab(CentOS/RHEL)。
  • KDE Partition Manager:适用于KDE桌面环境,提供分区管理(如创建、删除、调整大小)和磁盘使用情况查看功能。安装命令:sudo apt-get install partitionmanager(Debian/Ubuntu)、sudo yum install partitionmanager(CentOS/RHEL)。

7. 实时磁盘IO监控(可选)

若需监控磁盘的实时IO性能(如读写速率、IO等待时间),可使用iotopiostat命令:

  • iotop:显示进程级的磁盘IO使用情况,帮助识别占用IO高的进程。安装命令:sudo apt-get install iotop(Debian/Ubuntu)、sudo yum install iotop(CentOS/RHEL)。使用方法:sudo iotop(需root权限)。
  • iostat:显示CPU使用率和磁盘IO统计信息(如tps、kB_read/s、kB_wrtn/s)。安装命令:sudo apt-get install sysstat(Debian/Ubuntu)、sudo yum install sysstat(CentOS/RHEL)。使用方法:iostat -mx 1(每秒更新一次,显示扩展信息)。

0