运维 | 清理 Linux 磁盘空间方法汇总

Appleex 2024-09-30 11:37:01 阅读 74

清理 Linux 磁盘空间方法汇总

前言

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

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

常见操作

查看磁盘使用情况

<code>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 无法为立即文档创建临时空间:设备上没有空间

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

解决方法

清理常规冗余文件

回到根目录

cd /

查看磁盘使用情况

df -Th

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

查看当前文件夹下面各个文件或则文件夹大小

du –max-depth=1 -h

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

清理 Docker 运行日志文件

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

查看磁盘使用情况

df -Th

进入 docker 目录,并查看目录下文件大小

cd /var/lib/docker/

du -sh *

查找空间占用很高的目录,进入并清理日志文件

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

参考文献



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。