文章目录[隐藏]
VPS 硬盘如果不够用,可以升级或者添加新硬盘。不过我们可以尝试清理一下硬盘,释放一些空间。Linux 提供了几个用于分析和清理系统磁盘空间的内置命令,本文介绍一下如何使用这些命令来仔细查看硬盘使用情况并释放空间。本教程适用于 Ubuntu、CentOS、Debian 等操作系统。
Linux 检查硬盘空间
Linux 目前有两个命令可以用来查看硬盘空间,这些命令提供了整个系统可用磁盘空间和特定目录中磁盘使用情况的高级视图。
使用 df 命令查看硬盘空间
使用 df 命令查看系统每个驱动器的可用磁盘空间:
sudo df
一般输出结果如下:
Filesystem 1K-blocks Used Available Use% Mounted on udev 4031204 0 4031204 0% /dev tmpfs 815276 952 814324 1% /run /dev/sda 164619468 3091188 153149572 2% / tmpfs 4076368 0 4076368 0% /dev/shm tmpfs 5120 0 5120 0% /run/lock tmpfs 4076368 0 4076368 0% /sys/fs/cgroup tmpfs 815272 0 815272 0% /run/user/1000
df 命令(“disk free”的缩写)显示每个驱动器的硬盘大小、已用空间、可用空间、使用百分比、挂载位置。 上述输出中的每个 block 代表一千字节。
为了使 df 的输出更易于阅读,我们可以添加 -h 选项。 此选项以千字节 (K)、兆字节 (M) 和千兆字节 (G) 为单位显示硬盘空间。
sudo df -h
输出如下:
Filesystem Size Used Avail Use% Mounted on udev 3.9G 0 3.9G 0% /dev tmpfs 797M 952K 796M 1% /run /dev/sda 157G 3.0G 147G 2% / tmpfs 3.9G 0 3.9G 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup tmpfs 797M 0 797M 0% /run/user/1000
还可以使用 df 命令来定位特定驱动器,使用上面列中的“文件系统”或“挂载”来指定特定位置。
sudo df -h /dev/sda
输出如下:
Filesystem Size Used Avail Use% Mounted on /dev/sda 157G 3.0G 147G 2% /
使用 du 命令查看硬盘空间
此外,也可以使用 du 命令。使用 du 命令在更细粒度的级别分析硬盘空间,此命令汇总指定目录或当前目录(如果未指定)的空间使用情况。
sudo du /etc/systemd
输出如下:
4 /etc/systemd/system/sockets.target.wants 4 /etc/systemd/system/sysinit.target.wants 4 /etc/systemd/system/timers.target.wants 4 /etc/systemd/system/multi-user.target.wants 100 /etc/systemd/system 16 /etc/systemd/network 4 /etc/systemd/user/sockets.target.wants 8 /etc/systemd/user 164 /etc/systemd
du 命令列出目标目录中的所有文件和目录,并以千字节为单位显示它们的硬盘使用情况。
列表中的最后一个条目始终是目标目录本身,提供目录硬盘使用情况的摘要。我们可以使用 -s 选项隔离目标目录的硬盘空间信息。对于包含许多文件和子目录的目录,这是一个有用的选项。
sudo du -s /
输出如下:
4129183 /
与 df 命令一样,我们可以使用 -h 选项使输出更易于阅读。这会导致硬盘空间以千字节 (K)、兆字节 (M) 和千兆字节 (G) 显示。 在下面的示例中,-h 选项与 -s 选项结合使用。
sudo du -sh /etc
输出如下:
5.2M /etc
以上就是查看 Linux 硬盘空间的两种方法,下面介绍一下怎么清理硬盘空间。
Linux 清理硬盘空间方法
清理硬盘空间第一步通常是清理一些用不到的 Linux 包。Linux 每个包管理器都提供了方便地选项来清理从未使用或不必要的包和相关数据。
如何删除不需要的包
Linux 不同发行版的包管理器基本都包含一个 autoremove 命令,此命令会自动删除不再使用的包,这些包通常是最初作为其他包的依赖项安装的包。
对于 Debian 和 Ubuntu 发行版:
sudo apt autoremove
在 AlmaLinux 和 CentOS 上,可以使用 yum 命令:
sudo yum autoremove
这同样适用于 Fedora 的 DNF 包管理器:
sudo dnf autoremove
如何清除包缓存
Linux 包管理器通常还包含一个 clean 命令,可以清除包管理器使用的缓存。如果由于元数据损坏而出现包错误,它也可能是一个有用的命令。
对于 Debian 和 Ubuntu,请使用以下命令:
sudo apt clean
APT 还有一个 autoclean 命令,可以清除不能再从 APT 存储库下载的过期包的缓存:
sudo apt autoclean
YUM 和 DNF 都要求指定要从缓存中清除的内容。最有用的选项是 metadata、packages、all 等。 例如,用于清除所有缓存数据的 YUM 命令:
sudo yum clean all
如何列出和删除不需要的包
如果VPS 的硬盘空间还是不够,我们可能需要查看已安装的软件包并开始决定不再需要哪些软件包。
1)列出已安装的软件包
对于 Debian 和 Ubuntu:
sudo apt list --installed
对于 AlmaLinux 和 CentOS:
sudo yum list installed
在 Fedora 上,该命令类似于 YUM 命令,只需用 dnf 替换 yum。
2)卸载不再需要或不需要的每个软件包。在以下示例中,将 nginx 替换为要删除的包的名称。
使用 apt 命令卸载软件包:
sudo apt remove nginx
使用 yum 命令卸载软件包:
sudo yum remove nginx
使用 dnf 命令卸载软件包:
sudo dnf remove nginx
我们还可以清理一下用不到的文件,以及一些日志文件、临时文件等,包括 /tmp 目录以及一些数据库、网站访问日志等。