在 CentOS 7 上释放磁盘空间的简单方法

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 【10月更文挑战第28天】

在 CentOS 7 上释放磁盘空间是维护服务器性能和稳定性的关键任务。磁盘空间不足可能会导致系统性能下降,甚至影响系统的正常运行。本指南将详细介绍如何使用 CentOS 7 内置的资源和工具来有效地清理和管理磁盘空间。这些方法不仅适用于 CentOS 7,也可以在其他 Linux 发行版上使用适当的命令进行操作。

在开始清理磁盘空间之前,首先要了解当前的磁盘使用情况。我们可以使用 dfdu 命令来查看磁盘使用情况。

使用 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 {
   } \;

设置日志轮转

为了防止日志文件无限增长,可以使用日志轮转工具 logrotatelogrotate 会定期轮转日志文件,将旧的日志文件压缩或删除,并创建新的日志文件。

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
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
4月前
|
关系型数据库 MySQL Linux
在 CentOS 6.4 VPS 上安装和保护 phpMyAdmin 的方法
在 CentOS 6.4 VPS 上安装和保护 phpMyAdmin 的方法
38 1
|
1月前
|
存储 监控 Linux
在 CentOS 7 中进行磁盘分区和挂载的具体操作步骤,如何使用 `fdisk` 创建分区、格式化分区、创建挂载点以及临时和永久挂载分区的方法。
本文介绍了在 CentOS 7 中进行磁盘分区和挂载的具体操作步骤。通过一个实际案例,详细说明了如何使用 `fdisk` 创建分区、格式化分区、创建挂载点以及临时和永久挂载分区的方法。此外,还分享了一些实践经验,帮助读者更好地管理和优化服务器磁盘空间。
65 4
|
2月前
|
监控 安全 Linux
CentOS7下安装配置ntp服务的方法教程
通过以上步骤,您不仅能在CentOS 7系统中成功部署NTP服务,还能确保其配置合理、运行稳定,为系统时间的精确性提供保障。欲了解更多高级配置或遇到特定问题,提供了丰富的服务器管理和优化资源,可作为进一步学习和求助的平台。
120 1
|
4月前
|
应用服务中间件 Linux 网络安全
2022年超详细在CentOS 7上安装Nginx方法(源码安装)
这篇文章提供了在CentOS 7系统上通过源码安装Nginx的详细步骤,包括从官网下载Nginx源码包、上传至虚拟机、解压、删除压缩包、编译安装前的配置、安装PCRE库(因为Nginx使用PCRE库解析正则表达式)、安装zlib和OpenSSL库(用于支持HTTPS协议)、重新编译Nginx、安装后启动Nginx服务、关闭服务、修改默认端口、以及重启服务测试等步骤。文章还提供了相关命令和操作截图,帮助用户更好地理解和执行安装过程。
2022年超详细在CentOS 7上安装Nginx方法(源码安装)
|
4月前
|
JavaScript Linux
2022年超详细在CentOS 7上安装Node.js方法(源码安装)
这篇文章介绍了在CentOS 7系统上通过源码安装Node.js的详细步骤,包括从官网下载Node.js源码包、将安装包上传至虚拟机、解压安装包、删除压缩文件、编译安装Node.js、检查Node.js和npm版本,以及切换npm源到淘宝镜像以加速下载。此外,还提供了一个获取Linux下Node.js离线安装包的微信公众号搜索方式。
|
4月前
|
SQL 关系型数据库 Linux
在CentOS 6上安装和使用PostgreSQL的方法
在CentOS 6上安装和使用PostgreSQL的方法
55 2
|
4月前
|
存储 关系型数据库 Linux
在CentOS 7上安装和使用Docker的方法
在CentOS 7上安装和使用Docker的方法
563 1
|
4月前
|
Ubuntu Linux 测试技术
下载ISO镜像的方法 Debian、Red Hat 、CentOS、Ubuntu、Kali Linux🌐
Debian、Red Hat、CentOS、Ubuntu与Kali Linux均为知名Linux发行版。下载Debian须访问官网并按计算机架构选ISO文件。Red Hat下载通常需订阅账户,可从官网登录后获取。CentOS可从官网或镜像站点下载,注意CentOS 8已停更。Ubuntu下载简便,官网直接选取版本及架构即可。Kali Linux专为安全测试设计,官网提供直接下载ISO镜像服务。
882 0
|
4月前
|
存储 Linux 编译器
在 CentOS 6.4 VPS 上安装 Git 的方法
在 CentOS 6.4 VPS 上安装 Git 的方法
40 0
|
4月前
|
存储 Linux 网络安全
在CentOS 7上安装Git的方法
在CentOS 7上安装Git的方法
323 0