当你的Linux服务器突然弹出“磁盘空间不足”的警告时,是不是有点手足无措?别慌!磁盘空间不足是新手常见的问题,但只要掌握几个简单的清理技巧,就能让服务器重新“轻装上阵”。本文将用最基础的命令和步骤,带你一步步搞定磁盘空间问题,全程简单易懂,跟着操作就能上手。
一、先看看磁盘空间用了多少?¶
第一步,要知道“哪里占用了空间”,得先查看磁盘整体使用情况。Linux下最常用的命令是 df -h,它能以人类可读的方式(比如GB、MB)显示磁盘分区的使用状态。
df -h
执行后你会看到类似这样的输出:
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 20G 15G 5.0G 75% /
tmpfs 2.0G 0 2.0G 0% /dev/shm
这里 Used 列就是已用空间,Avail 是可用空间。重点关注根目录 / 或 /var 这类系统目录,通常是空间占用大户。
二、找出“空间小偷”——定位大文件¶
知道整体情况后,需要定位到底是哪些文件/目录占了空间。最常用的工具是 du -sh(显示目录大小)和 find(搜索文件)。
1. 快速定位大目录¶
比如查看 /var 目录下的子目录大小:
du -sh /var/*
输出类似:
4.0K /var/backups
1.2G /var/cache
500M /var/lib
这里能看到 /var/cache 或 /var/lib 可能是“嫌疑犯”。
2. 找大文件(比如超过100MB的文件)¶
用 find 命令搜索系统中大于100MB的文件(注意:/ 可能耗时较长,可先从 /home 或 /tmp 等用户目录开始):
find / -type f -size +100M 2>/dev/null
-type f:只找文件(不包括目录);-size +100M:文件大小大于100MB;2>/dev/null:忽略找不到权限的错误信息,避免干扰。
三、针对性清理:这些“空间杀手”要重点关注¶
1. 清理日志文件(/var/log 目录)¶
日志文件是磁盘空间的“隐形杀手”,尤其是 /var/log 里的日志(比如系统日志、应用日志)。但千万别直接删整个目录!
-
方法1:清空特定日志(谨慎操作)
有些日志文件可能已经不再写入(比如旧系统日志),可以用echo "" > /var/log/syslog清空(需确认是否有新日志写入,用tail -f /var/log/syslog查看实时日志)。
注意:如果日志正在被程序写入(比如用tail -f看到内容在更新),直接清空可能导致数据丢失! -
方法2:用 logrotate 自动管理日志
Linux自带的logrotate工具会自动轮转日志(比如压缩旧日志),避免日志无限增长。如果系统已配置,直接执行sudo logrotate -f /etc/logrotate.conf强制轮转一次即可。 -
方法3:删除旧日志压缩包
有些日志会被压缩成.gz或.bz2文件(比如messages-202301.gz),这些是历史日志,确认无用后可直接删除:
sudo rm /var/log/*.gz
2. 清理缓存和临时文件¶
系统缓存、临时文件(/tmp、/var/tmp)也会占用空间,可按以下步骤清理:
- 释放系统缓存
Linux会将频繁访问的文件缓存到内存,若内存充足但磁盘空间紧张,可清理缓存(不需要担心数据丢失,这只是释放系统缓存):
sudo sync # 同步数据到磁盘,避免数据丢失
echo 3 > /proc/sys/vm/drop_caches # 释放所有缓存
- 清理临时文件
/tmp是临时文件的“聚集地”,大部分文件重启后会自动消失,但长期未清理的文件可能残留。直接删除:
sudo rm -rf /tmp/* /var/tmp/*
注意:若有程序正在使用 /tmp 里的文件(比如某个软件临时生成的文件),删除可能导致程序报错,删除前建议确认文件是否为“孤儿文件”(用 lsof /tmp/xxx 查看是否被占用)。
3. 卸载无用软件包¶
如果系统安装了不需要的软件(比如旧版本工具、测试包),可以用包管理器卸载释放空间。
- CentOS/RHEL 系统(用
yum):
sudo yum remove 软件包名称 # 卸载单个软件
sudo yum clean all # 清理缓存的安装包(.rpm文件)
- Ubuntu/Debian 系统(用
apt):
sudo apt remove 软件包名称 # 卸载单个软件
sudo apt autoremove # 卸载无用依赖
sudo apt clean # 清理缓存的安装包(.deb文件)
4. 清理用户目录大文件¶
如果是个人用户服务器,/home 目录下可能有用户下载的大文件(比如电影、安装包)。可以让用户登录后检查自己的目录:
cd ~ # 进入当前用户目录
du -sh * # 查看当前目录下所有文件/文件夹大小
若发现无用的大文件(比如几个GB的压缩包),直接删除即可:
rm -rf 大文件名称 # 彻底删除(需确认!)
四、注意事项:这些操作千万别踩坑!¶
- 别删系统关键文件:比如
/etc、/bin、/usr下的核心文件,删除会导致系统故障! - 删除前先确认:用
ls或cat先查看文件内容,比如cat /var/log/syslog确认是否为旧日志。 - 非root操作需谨慎:删除系统目录(如
/var)或修改系统文件(如/etc)需要sudo权限,避免误操作。 - 定期清理更省心:养成每周检查磁盘空间的习惯,小问题早发现早解决,避免堆积成大问题。
总结:清理步骤优先级¶
- 用
df -h看整体空间; - 用
du -sh定位大目录; - 用
find找大文件; - 优先清理日志、缓存、临时文件;
- 卸载无用软件,删除用户大文件。
按照这个流程操作,即使是新手也能轻松清理出足够的磁盘空间。记住,Linux系统本身很稳定,只要不盲目删除关键文件,清理过程是安全的!如果遇到不确定的文件,先备份或查阅资料,安全第一哦~