当你的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 大文件名称  # 彻底删除(需确认!)

四、注意事项:这些操作千万别踩坑!

  1. 别删系统关键文件:比如 /etc/bin/usr 下的核心文件,删除会导致系统故障!
  2. 删除前先确认:用 lscat 先查看文件内容,比如 cat /var/log/syslog 确认是否为旧日志。
  3. 非root操作需谨慎:删除系统目录(如 /var)或修改系统文件(如 /etc)需要 sudo 权限,避免误操作。
  4. 定期清理更省心:养成每周检查磁盘空间的习惯,小问题早发现早解决,避免堆积成大问题。

总结:清理步骤优先级

  1. df -h 看整体空间;
  2. du -sh 定位大目录;
  3. find 找大文件;
  4. 优先清理日志、缓存、临时文件;
  5. 卸载无用软件,删除用户大文件。

按照这个流程操作,即使是新手也能轻松清理出足够的磁盘空间。记住,Linux系统本身很稳定,只要不盲目删除关键文件,清理过程是安全的!如果遇到不确定的文件,先备份或查阅资料,安全第一哦~

小夜