运维 | 清理 Linux 磁盘空间方法汇总
创始人
2024-12-15 05:36:30

清理 Linux 磁盘空间方法汇总

前言

系统磁盘不够用或占满了,导致部分应用或程序无法正常使用。

本章节将记录一些常用或常见的方法清理系统磁盘(持续更新中)。

常见操作

查看磁盘使用情况

cd / df -Th 

查找大文件和目录(根目录)

du -sh /* 

按照文件夹大小排序,查找该目录下前 10 的文件夹

du -h /var | sort -rh | head -n 10 

使用实例

清理系统日志

  • 检查日志文件大小

在 Linux 系统中,日志文件可能会非常大,占用大量磁盘空间。您可以使用 ls 命令和 grep 命令来查看日志文件的大小并找出最大的几个文件。

例如,使用以下命令列出 /var/log 目录下最大的 10 个文件:

ls -lSr /var/log | grep ^- | tail | awk '{print $5, $9}' 
  • 清空系统日志

将旧的系统日志归档并开始记录新的日志

journalctl --rotate 

将清除早于 1 秒钟的日志条目

journalctl --vacuum-time=1s 
  • 手动清理日志文件
find /var/log/ -type f -name "*.log" -delete find /var/lib/docker/containers/ -type f -name "*.log" -delete 
  • 清空已打开的日志文件

在某些情况下,已打开并写入的日志文件可能无法直接删除。在这种情况下,您可以使用以下命令将文件截断为零大小,并释放由该文件占用的磁盘空间:

sh -c 'truncate -s 0 /var/log/' 

其中,是要截断的日志文件名。例如,清空 syslog 文件的命令如下:

sh -c 'truncate -s 0 /var/log/syslog' 

删除临时文件和目录(需谨慎)

rm -rf /tmp/* rm -rf /var/tmp/* 

清理缓存

sync && sysctl -w vm.drop_caches=3 

该命令将使 Linux 内核释放所有未使用的缓存页,并回收未使用的内存。请注意,这会导致系统性能下降,因为它会强制 Linux 重新加载从磁盘读取的文件。

删除不使用的软件包

sudo yum autoremove apt-get autoremove 

这将删除您已卸载但未自动删除的软件包。

删除无用的内核

package-cleanup --oldkernels 

删除未使用的依赖项

package-cleanup --leaves 

清理错误的 yum 缓存

yum clean all 

清除 APT 缓存

apt-get clean apt-get autoclean 

删除旧的备份文件

find /path/to/backup/folder -type f -mtime +30 -delete 

该命令将删除早于 30 天的所有备份文件。您可以根据需要更改 -mtime 选项的值来调整备份保留时间

清理 docker

  • 删除未使用的镜像
docker image prune 

这个命令将删除未被任何容器使用的所有镜像。如果您想删除特定的镜像,请使用 docker rmi 命令。

  • 删除未运行的容器
docker container prune 

这个命令将删除未在运行中的所有容器。如果您想删除特定的容器,请使用 docker rm 命令。

  • 删除未使用的卷
docker volume prune 

这个命令将删除未被任何容器使用的所有卷。如果您想删除特定的卷,请使用 docker volume rm 命令。

FAQ

Linux –bash 无法为立即文档创建临时空间设备上没有空间

  • 问题描述

Linux:–bash 无法为立即文档创建临时空间:设备上没有空间

一般遇到这种情况就是磁盘占用满了;如果是日常运行服务的话,基本都是日志未定期清除占满了磁盘。

  • 解决方法

清理常规冗余文件

  1. 回到根目录
cd / 
  1. 查看磁盘使用情况
df -Th 

可以发现 / 根目录已经占满了

  1. 查看当前文件夹下面各个文件或则文件夹大小
du –max-depth=1 -h 

查找占用空间大的文件或文件夹,进行合理的清理就行

清理 Docker 运行日志文件

在使用 docker 时,往往会出现磁盘空间不足,导致该问题的通常原因是因为 docker 中部署的系统输出了大量的日志内容

  1. 查看磁盘使用情况
df -Th 
  1. 进入 docker 目录,并查看目录下文件大小
cd /var/lib/docker/ du -sh * 
  1. 查找空间占用很高的目录,进入并清理日志文件
cd /var/lib/docker/containers/3571685f01a6d592c9a9f4fc0fb9bc571f945bcd0299c82dd8f0d79ef11eeb32  cat /dev/null > *-json.log 

过滤出大小达到 G 的文件夹名:du -sh ./* | grep G | awk '{print $2}'

  • 快速处理

要查看 Docker 日志的大小,请运行以下命令:

du -hs /var/lib/docker/containers/*/*-json.log 

这个命令将显示每个容器的日志大小,并将其按递增的顺序列出。用户可以从中找到 Docker 容器日志的大小,并确定是否需要进行操作

使用以下命令删除不需要的日志文件:

find /var/lib/docker/containers/ -name "*-json.log" | xargs rm -f 

参考文献

相关内容

热门资讯

上海移动宣布5G-A超级上行网... 来源:滚动播报 (来源:上观新闻) 采访对象提供 5月17日,“智能加码 科创申城” 中国移动上海...
英伟达CEO黄仁勋痛斥将GPU... IT之家 5 月 17 日消息,英伟达首席执行官黄仁勋受邀担任斯坦福大学《前沿系统》CS 153 课...
2026年高性价比机型封神榜:... 2026 年手机市场机型繁杂,多数用户都面临相同的选购困境:千元预算想选高性价比手机,怕续航拉垮、用...
江苏辛巴新材料取得零碳风光互补... 国家知识产权局信息显示,江苏辛巴新材料科技股份有限公司取得一项名为“一种零碳风光互补装置”的专利,授...
全钢实验台厂家梳理 医疗/科研... 导语:实验室设备选型需兼顾功能适配性与长期稳定性。基于2026年实验室建设行业白皮书及公开市场数据,...