Linux系统清理空间的几种方法

发布于 2024-02-01  144 次阅读


我跑博客的这台机器已经用了好多年了,上面搭建了一大堆东西,现在它的硬盘几乎天天都会报警,储存空间一旦不足将会影响到所有服务的正常运行,所以清理迫在眉睫。

根据网上搜索到的一些方法,加上询问ChatGPT,我总结了以下这些方法,可以说是相当的有用,至少不会再天天报警了。

apt-get clean

这条指令会清理/var/cache/apt/archives/目录下的软件包缓存文件。这些文件是下载的deb软件包文件,安装更新后就不再需要了。通过清理这些缓存文件,可以腾出相当可观的磁盘空间。

日志

日志文件通常记录系统活动和事件,如果没有设置自动清理,随着时间的推移,这些文件就会变得很大。可以使用以下命令清理旧的日志文件:

find /var/log -type f -name "*.log" -exec truncate -s 0 {} \;

这条命令会清空所有以.log结尾的文件,这样可以保留日志文件但将其内容清空。不推荐直接删除,有的软件在日志文件被删除后不会自动创建,甚至运行报错。

清理旧的内核版本

# 查看当前正在运行的内核版本
uname -r

# 列出已安装的内核版本
dpkg --list | grep linux-image

# 删除旧的内核版本(替换 x.x.x.x 为实际版本号)
sudo apt-get purge linux-image-x.x.x.x

在更新内核时,旧的内核版本可能会被保留,占据一定的存储空间。可以使用这个命令来查看已安装的内核版本并删除旧的版本。小心,不要删除正在使用的当前内核版本,否则可能导致系统无法启动!

ncdu

如果上面的一些方法都不管用,那么可以试试这个软件。

Ncdu 是一个带有 ncurses 接口的磁盘使用分析器。 它旨在在您没有完整图形设置可用的远程服务器上查找空间占用,但即使在常规桌面系统上它也是一个有用的工具。 Ncdu 的目标是快速、简单和易于使用,并且应该能够在安装了 ncurses 的任何最小的类 POSIX 环境中运行。——来自官方网站

可以从你的软件仓库安装ncdu。例如,在Ubuntu/Debian上: 

apt-get install ncdu

安装完成后,可以通过在终端中输入ncdu启动ncdu。
ncdu会显示磁盘使用情况的可视化界面,你可以使用键盘上的箭头键和回车键来导航和查看目录结构。

$ ncdu
ncdu 1.16 ~ Use the arrow keys to navigate, press ? for help                                                                  
--- /home/tux -----------------------------------------------
   22.1 GiB [##################] /.var
   19.0 GiB [###############   ] /Iso
   10.0 GiB [########          ] /.local
    7.9 GiB [######            ] /.cache
    3.8 GiB [###               ] /Downloads
    3.6 GiB [##                ] /.mail
    2.9 GiB [##                ] /Code
    2.8 GiB [##                ] /Documents
    2.3 GiB [#                 ] /Videos
[...]

以下是一些常用的键:

  • 上箭头下箭头:在目录列表中上下移动
  • 左箭头右箭头:展开或折叠目录
  • Enter:进入选定的目录
  • d:删除选定的文件或目录
  • r:刷新当前目录的信息
  • n:按文件名进行排序(再按为切换升降序)
  • s:按文件大小进行排序(默认,再按为切换升降序)
  • q:退出

你可以使用--exclude选项排除任意文件和目录,并在后面加上一个匹配模式。

$ ncdu --exclude ".var"
   19.0 GiB [##################] /Iso
   10.0 GiB [#########         ] /.local
    7.9 GiB [#######           ] /.cache
    3.8 GiB [###               ] /Downloads
[...]