服务器磁盘爆满?别慌,教你轻松清理!

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,118元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
简介: 服务器磁盘空间告急?别慌!本文将教你如何快速识别并清理占用大量磁盘空间的文件和目录,优化日志文件,释放磁盘空间,恢复系统正常运行。适合服务器管理员和网站运营者。

服务器磁盘爆满?别慌,教你轻松清理!

简介

服务器磁盘空间告急,网站访问缓慢,甚至无法正常运行?别担心,这篇文章将为你提供一份详细的清理指南,帮助你快速释放服务器磁盘空间,恢复系统正常运行。

我们将从以下几个方面展开讨论:

  • 识别磁盘空间占用大户: 使用哪些工具可以快速定位占用大量磁盘空间的文件和目录?
  • 清理无用文件: 哪些类型的文件可以安全删除?如何避免误删重要数据?
  • 优化日志文件: 如何设置日志文件的保留策略,避免日志文件占用过多空间?

无论你是服务器管理员还是网站运营者,这篇文章都将为你提供实用的解决方案,帮助你轻松应对服务器磁盘爆满问题。

摘要
服务器磁盘空间告急?别慌!本文将教你如何快速识别并清理占用大量磁盘空间的文件和目录,优化日志文件,释放磁盘空间,恢复系统正常运行。适合服务器管理员和网站运营者。

正文

1 排查方式

1.1 显示磁盘空间使用情况

df -h

image-20230703141858681

文件系统中的挂载点/dev/vdal的59G磁盘空间已经用完,我们需要对一些没用的大文件进行清理删除。

1.2 显示当前目录所占空间情况

回到根目录,查看当前的目录下那个文件占用最大

cd /
du -h --max-depth=1

image-20241024104454904

进入大的文件目录,重复查看当前目录所占空间情况,我发现MySQL的binlog占用了比较大的磁盘空间。

image-20241024105233906

2 解决方案

2.1 关于MySQL中的binlog占用磁盘空间

列出当前 MySQL 服务器上所有的二进制日志文件的名称和大小

SHOW BINARY LOGS;

image-20241024105902744

查询并显示 expire_logs_days 系统变量的当前值,这个变量作用于binlog过期时间。

  • expire_logs_days 的默认值通常是 0,表示二进制日志文件不会自动删除。
  • expire_logs_days 的值大于 0,MySQL 会在每天的日志轮转时检查并删除超过指定天数的二进制日志文件。
show variables like 'expire_logs_days';

image-20241024110128891

动态修改 expire_logs_days 的值,设置binlog过期时间为30天。

作者提示:【这个谨慎设置,请勿用于生产环境,binlog文件作用于数据恢复主从复制等重要功能】

set global expire_logs_days = 30;

演示的是MySQL 8,可能遇到的错误

3683 - The option expire_logs_days and binlog_expire_logs_seconds cannot be used together. Please use binlog_expire_logs_seconds to set the expire time (expire_logs_days is deprecated)

[3683] - 选项expire_logs_days 和binlog_expire_logs_seconds 不能一起使用。请使用 binlog_expire_logs_seconds 设置过期时间(expire_logs_days 已弃用)

可以使用下面的命令进行替代,下面命令选一条即可。

SET GLOBAL binlog_expire_logs_seconds = 604800;  -- 7天(7 * 24 * 60 * 60)

SET GLOBAL binlog_expire_logs_seconds = 2592000;  -- 30天(30 * 24 * 60 * 60)

设置好我们在查看一下binlog过期时间,由于expire_logs_days变量已经弃用,我们设置了binlog_expire_logs_seconds所以这里查询的命令也需要改下变量名称。

show variables like 'binlog_expire_logs_seconds';

【扩展】列出 mysql-binlog.000067 文件中的所有事件。

show binlog events in 'mysql-binlog.000067'

image-20241024110844222

2.2 Docker占用磁盘空间

  • docker system prune : 清理未使用的 Docker 资源,包括未使用的镜像、容器、卷和构建缓存。
  • docker image prune : 清理未使用的镜像。
  • docker container prune : 清理停止的容器。
  • docker volume prune : 清理未使用的卷。
  • docker builder prune : 清理构建缓存。

显示 Docker 系统中各种资源的占用情况。

docker system df

image-20230703142312772

  • TYPE : 资源的类型,包括 Images(镜像)、Containers(容器)、Local Volumes(本地卷)和 Build Cache(构建缓存)。
  • TOTAL : 该类型资源的总数。
  • ACTIVE : 该类型资源中处于活动状态的数量。
  • SIZE : 该类型资源占用的总空间大小。
  • RECLAIMABLE : 可以回收的空间大小,以及回收的比例。

删除所有无用的volume(本地数据卷)

docker volume rm $(docker volume ls -qf dangling=true)

清理之后

image-20230703143623853

目录
相关文章
|
7天前
|
编解码 Java 程序员
写代码还有专业的编程显示器?
写代码已经十个年头了, 一直都是习惯直接用一台Mac电脑写代码 偶尔接一个显示器, 但是可能因为公司配的显示器不怎么样, 还要接转接头 搞得桌面杂乱无章,分辨率也低,感觉屏幕还是Mac自带的看着舒服
|
9天前
|
存储 缓存 关系型数据库
MySQL事务日志-Redo Log工作原理分析
事务的隔离性和原子性分别通过锁和事务日志实现,而持久性则依赖于事务日志中的`Redo Log`。在MySQL中,`Redo Log`确保已提交事务的数据能持久保存,即使系统崩溃也能通过重做日志恢复数据。其工作原理是记录数据在内存中的更改,待事务提交时写入磁盘。此外,`Redo Log`采用简单的物理日志格式和高效的顺序IO,确保快速提交。通过不同的落盘策略,可在性能和安全性之间做出权衡。
1570 10
|
1月前
|
弹性计算 人工智能 架构师
阿里云携手Altair共拓云上工业仿真新机遇
2024年9月12日,「2024 Altair 技术大会杭州站」成功召开,阿里云弹性计算产品运营与生态负责人何川,与Altair中国技术总监赵阳在会上联合发布了最新的“云上CAE一体机”。
阿里云携手Altair共拓云上工业仿真新机遇
|
15天前
|
存储 人工智能 开发工具
AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片
只需要通过向AI助理提问的方式输入您的需求,即可瞬间获得核心流程代码及参数,缩短学习路径、提升开发效率。
1056 1
AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片
|
14天前
|
人工智能 Serverless API
AI助理精准匹配,为您推荐方案——如何快速在网站上增加一个AI助手
通过向AI助理提问的方式,生成一个技术方案:在网站上增加一个AI助手,提供7*24的全天候服务,即时回答用户的问题和解决他们可能遇到的问题,无需等待人工客服上班,显著提升用户体验。
1075 5
|
13天前
|
人工智能 Rust Java
10月更文挑战赛火热启动,坚持热爱坚持创作!
开发者社区10月更文挑战,寻找热爱技术内容创作的你,欢迎来创作!
806 28
|
1天前
|
人工智能 关系型数据库 Serverless
1024,致开发者们——希望和你一起用技术人独有的方式,庆祝你的主场
阿里云开发者社区推出“1024·云上见”程序员节专题活动,包括云上实操、开发者测评和征文三个分会场,提供14个实操活动、3个解决方案、3 个产品方案的测评及征文比赛,旨在帮助开发者提升技能、分享经验,共筑技术梦想。
459 51
|
7天前
|
并行计算 PyTorch TensorFlow
Ubuntu安装笔记(一):安装显卡驱动、cuda/cudnn、Anaconda、Pytorch、Tensorflow、Opencv、Visdom、FFMPEG、卸载一些不必要的预装软件
这篇文章是关于如何在Ubuntu操作系统上安装显卡驱动、CUDA、CUDNN、Anaconda、PyTorch、TensorFlow、OpenCV、FFMPEG以及卸载不必要的预装软件的详细指南。
512 3
|
2天前
|
移动开发 JavaScript 前端开发
💻揭秘!如何用 Vue 3 实现酷炫的色彩魔方游戏✨
本文分享了开发基于Canvas技术的小游戏"色彩魔方挑战"的完整过程。游戏旨在考验玩家的观察力和耐心,通过随机生成的颜色矩阵和一个变化点,玩家需在两幅画布中找出不同的颜色点。文章详细讲解了游戏的核心功能,包括随机颜色矩阵生成、点的闪烁提示、自定义配色方案等。此外,作者展示了使用Vue 3和TypeScript开发的代码实现,带领读者一步步深入了解游戏的逻辑与细节。
106 68
|
16天前
|
Linux 虚拟化 开发者
一键将CentOs的yum源更换为国内阿里yum源
一键将CentOs的yum源更换为国内阿里yum源
893 5