在 CentOS 7 上释放磁盘空间是维护服务器性能和稳定性的关键任务。磁盘空间不足可能会导致系统性能下降,甚至影响系统的正常运行。本指南将详细介绍如何使用 CentOS 7 内置的资源和工具来有效地清理和管理磁盘空间。这些方法不仅适用于 CentOS 7,也可以在其他 Linux 发行版上使用适当的命令进行操作。
在开始清理磁盘空间之前,首先要了解当前的磁盘使用情况。我们可以使用 df
和 du
命令来查看磁盘使用情况。
使用 df
命令查看磁盘使用情况
df
命令用于显示文件系统的磁盘空间使用情况。使用 -h
选项可以以人类可读的格式显示信息:
df -h
输出示例:
使用 du
命令查看目录大小
du
命令用于估算文件和目录的磁盘使用情况。使用 -h
选项可以以人类可读的格式显示信息,使用 --max-depth=1
选项可以限制显示的目录层级:
du -h --max-depth=1 /var
输出示例:
清理日志文件
在 CentOS 7 上,大多数日志文件存储在 /var/log
目录中。随着时间的推移,这些日志文件可能会变得非常大,占用大量磁盘空间。清理这些日志文件是释放磁盘空间的一个重要步骤。
截断日志文件
截断日志文件是指将日志文件的内容清空,但保留文件本身。我们可以使用 truncate
命令来截断日志文件。例如,截断所有大小超过 50MB 且修改时间超过 7 天的日志文件:
find /var/log -type f -name "*.log" -size +50M -mtime +7 -exec truncate -s 0 {
} \;
删除旧的日志文件
如果不再需要某些旧的日志文件,可以直接删除它们。例如,删除修改时间超过 30 天的日志文件:
find /var/log -type f -name "*.log" -mtime +30 -exec rm -f {
} \;
设置日志轮转
为了防止日志文件无限增长,可以使用日志轮转工具 logrotate
。logrotate
会定期轮转日志文件,将旧的日志文件压缩或删除,并创建新的日志文件。
logrotate
的配置文件位于 /etc/logrotate.conf
,可以在这里设置日志轮转的策略。以下是一个示例配置:
/var/log/messages {
rotate 5
weekly
compress
delaycompress
missingok
notifempty
create 0640 root utmp
postrotate
/usr/bin/killall -HUP syslogd
endscript
}
该配置文件表示 /var/log/messages
文件将每周轮转一次,保留 5 个旧的压缩日志文件。
清理 YUM 缓存
YUM 是 CentOS 7 的包管理工具,它会在 /var/cache/yum
目录中缓存下载的软件包和更新文件。随着时间的推移,这些缓存文件可能会占用大量磁盘空间。
清理 YUM 缓存
使用以下命令清理 YUM 缓存:
yum clean all
该命令会清理所有的 YUM 缓存,包括软件包缓存和元数据缓存。
手动删除 YUM 缓存文件
如果 yum clean all
命令没有清理所有缓存文件,可以手动删除它们。例如,删除 /var/cache/yum
目录中的所有文件:
rm -rf /var/cache/yum
清理 YUM 临时文件
此外,还可以清理 YUM 的临时文件,这些文件通常存储在 /var/tmp/yum-*
目录中:
rm -rf /var/tmp/yum-*
删除孤立包
孤立包是指那些不再作为其他软件包依赖项的包。它们通常是系统更新或软件卸载后遗留的包,可能不再需要。
查找孤立包
使用 package-cleanup
工具可以查找系统中的孤立包:
package-cleanup --quiet --leaves --exclude-bin
删除孤立包
查找到孤立包后,可以使用以下命令删除它们:
package-cleanup --quiet --leaves --exclude-bin | xargs yum remove -y
运行多次
由于一些孤立包可能依赖于其他孤立包,建议多次运行上述命令,确保所有孤立包都被删除。
删除旧内核
每次更新 CentOS 内核时,系统会保留旧的内核版本,以防新内核出现问题时可以回滚。这些旧内核会占用大量磁盘空间,建议只保留最近的几个内核版本。
删除旧内核
使用 package-cleanup
工具删除旧内核,只保留最近的两个内核版本:
package-cleanup --oldkernels --count=2
清理 Composer 缓存
如果你在 CentOS 7 上运行 Web 服务器并使用 Composer 来管理 PHP 包,Composer 会在使用时创建缓存文件,这些缓存文件可能会占用大量磁盘空间。
清理 Composer 缓存
使用以下命令清理 Composer 缓存:
rm -rf /root/.composer/cache
rm -rf /home/*/.composer/cache