一、为什么需要关注磁盘空间
咱们用电脑的时候,经常会遇到系统提示“磁盘空间不足”,这时候如果不及时处理,可能会导致程序崩溃、数据丢失,甚至系统卡死。Linux服务器尤其需要注意这个问题,因为很多服务(比如数据库、Web服务)都需要足够的磁盘空间才能正常运行。
在Linux中,最常用的两个命令来查看和管理磁盘空间的就是df和du。它们就像你的“磁盘空间体检报告”,能告诉你哪些地方占用了空间,哪些文件可以清理。
二、df命令:查看磁盘整体使用情况
df(Disk Filesystem)命令用来查看整个文件系统的磁盘使用情况,包括总容量、已用空间、剩余空间等。
基本用法
# 查看所有挂载的文件系统使用情况(默认以KB为单位)
df
# 以更易读的方式显示(自动转换单位:KB/MB/GB)
df -h
# 只显示某个特定文件系统的信息(比如根目录 `/`)
df -h /
示例解析
# 示例输出:
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 50G 30G 18G 63% /
tmpfs 3.9G 0 3.9G 0% /dev/shm
- Filesystem:磁盘分区名称(如
/dev/sda1)。 - Size:总容量(50GB)。
- Used:已用空间(30GB)。
- Avail:剩余可用空间(18GB)。
- Use%:使用百分比(63%)。
- Mounted on:挂载点(
/表示根目录)。
适用场景
- 快速检查服务器磁盘是否快满了。
- 排查哪个分区空间紧张(比如
/var日志目录占满)。
三、du命令:查看目录/文件占用空间
du(Disk Usage)命令用来查看具体目录或文件占用了多少磁盘空间,比df更细致。
基本用法
# 查看当前目录的总占用空间(默认KB)
du
# 以易读方式显示(-h),并汇总总大小(-s)
du -sh
# 查看指定目录的大小(比如/var/log)
du -sh /var/log
# 查看目录下所有子目录的大小(按大小排序)
du -h --max-depth=1 / | sort -h
示例解析
# 示例1:查看当前目录占用空间
du -sh
# 输出:4.5G .
# 示例2:查看/var/log下所有日志文件大小
du -h /var/log/*
# 输出:
# 100M /var/log/syslog
# 2G /var/log/nginx
# ...
适用场景
- 找出哪个目录或文件占用了大量空间(比如日志文件、缓存文件)。
- 清理无用的大文件前,先确认它们的大小。
四、清理冗余文件的实战技巧
知道哪些文件占空间后,就可以动手清理了。以下是常见场景和解决方案:
1. 清理日志文件
日志文件(如/var/log)经常是“磁盘杀手”,可以用logrotate管理或手动清理:
# 查看并删除旧的日志文件(比如超过100MB的)
find /var/log -type f -size +100M -exec ls -lh {} \;
find /var/log -type f -size +100M -delete
# 或者清空某个日志文件(比如nginx的access.log)
echo "" > /var/log/nginx/access.log
2. 清理缓存和临时文件
Linux的缓存和临时文件通常位于/tmp或/var/cache:
# 清理旧的临时文件(超过30天未修改的)
find /tmp -type f -mtime +30 -delete
# 清理包管理器的缓存(比如apt)
sudo apt clean
3. 查找并删除大文件
用find命令搜索大文件(比如超过1GB的):
# 从根目录开始查找大于1GB的文件
find / -type f -size +1G -exec ls -lh {} \;
# 确认无误后删除
find / -type f -size +1G -delete
注意事项
- 谨慎使用
rm -rf:删除前务必确认文件是否重要。 - 保留关键日志:比如数据库日志、审计日志别乱删。
- 定期检查:可以设置
cron任务每周自动清理。
五、总结
- df:宏观查看磁盘使用情况,适合快速定位问题分区。
- du:微观分析目录/文件大小,精准找到“空间杀手”。
- 清理技巧:日志、缓存、临时文件是常见清理目标,但操作前务必确认。
养成定期检查磁盘空间的习惯,能避免很多突发问题。如果服务器经常爆满,可以考虑扩容或优化存储策略(比如日志归档)。
评论