在Linux系统中,磁盘空间不足是一个常见的问题。当磁盘空间不足时,可能会导致系统运行缓慢、程序崩溃或无法启动新服务等问题。因此,掌握如何排查和清理磁盘空间是每个Linux管理员必备的技能。
df
命令查看磁盘使用情况df
命令用于查看文件系统的磁盘空间使用情况。通过以下命令可以查看所有挂载点的磁盘使用情况:
df -h
-h
选项表示以人类可读的形式(如GB、MB)显示磁盘使用情况。输出示例:
Filesystem Size Used Avail Use% Mounted on
udev 16G 0 16G 0% /dev
tmpfs 3.2G 2.1M 3.2G 1% /run
/dev/sda1 50G 45G 2.1G 96% /
tmpfs 16G 10M 16G 1% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 16G 0 16G 0% /sys/fs/cgroup
从上面的输出可以看到,根目录/
的使用率已经达到了96%,这说明磁盘空间几乎耗尽。
du
命令查找大文件du
命令用于统计文件和目录的磁盘使用情况。可以通过以下命令找到占用空间较大的文件或目录:
du -ah --max-depth=1 / | sort -hr
-a
:显示每个文件和目录的大小。-h
:以人类可读的形式显示大小。--max-depth=1
:只显示当前目录下的子目录和文件,不递归深入。sort -hr
:按大小排序,-h
支持人类可读格式排序,-r
表示逆序排列。输出示例:
40G /var
5.0G /usr
2.0G /home
1.0G /opt
从上面的输出可以看到,/var
目录占用了40GB的空间,可能是日志文件或其他临时文件过多导致的。
Linux系统中通常会有一些临时文件存储在/tmp
或/var/tmp
目录下。这些文件可以在系统重启后自动删除,但也可以手动清理:
sudo rm -rf /tmp/*
sudo rm -rf /var/tmp/*
日志文件通常存储在/var/log
目录下。如果日志文件过大,可以考虑压缩旧的日志文件或直接删除不再需要的日志文件:
# 查看日志文件大小
du -sh /var/log/*
# 删除或清空日志文件
sudo > /var/log/syslog
sudo > /var/log/auth.log
或者使用logrotate
工具来管理日志文件的轮转和压缩。
使用apt
或yum
包管理器可以清理不再需要的软件包和缓存:
# 清理已卸载软件包的依赖
sudo apt autoremove
# 清理APT缓存
sudo apt clean
# 清理已卸载软件包的依赖
sudo yum autoremove
# 清理YUM缓存
sudo yum clean all
通过前面的du
命令找到的大文件,可以逐一检查是否可以删除。例如:
# 删除某个大文件
sudo rm -f /path/to/largefile
# 删除整个目录
sudo rm -rf /path/to/large_directory
如果清理后仍然空间不足,可以考虑扩展磁盘空间。具体方法包括:
nagios
、zabbix
或prometheus
来定期检查磁盘使用情况。logrotate
配置日志轮转。/tmp
和/var/tmp
目录中的临时文件。