300 字
1 分钟
linux centos 磁盘异常占用满了排查和解决
linux centos 磁盘异常占用满了排查和解决
4. 使用交互式工具ncdu (推荐)
安装后扫描更直观(支持排除/home):
bash
sudo apt install ncdu # Debian/Ubuntusudo yum install ncdu # CentOS/RHEL扫描命令:
bash
sudo ncdu --exclude /home /-
操作方式:
- 方向键导航,
Enter进入子目录。 d删除文件(谨慎使用),g显示大小百分比。
- 方向键导航,
系统层
- 首先查看磁盘使用情况:
# 查看磁盘分区使用情况df -h
# 查看具体目录大小du -sh /*- 查找大文件:
# 查找大于100M的文件find / -type f -size +100M -exec ls -lh {} \;
# 按大小排序显示前10个最大的文件find / -type f -exec du -Sh {} + | sort -rh | head -n 10- 检查日志文件:
# 查看/var/log目录大小du -sh /var/log/*
# 清理旧日志sudo find /var/log -type f -name "*.log.*" -deletesudo find /var/log -type f -name "*.gz" -delete
# 清空大日志文件(不删除文件本身)sudo truncate -s 0 /var/log/large_log_file.log- 清理软件包缓存:
# 清理yum缓存sudo yum clean all
# 删除旧的软件包sudo package-cleanup --oldkernels --count=2- 检查并清理临时文件:
# 查看/tmp目录大小du -sh /tmp
# 清理临时文件sudo rm -rf /tmp/*sudo rm -rf /var/tmp/*- 检查Docker(如果安装了):
# 查看Docker使用空间docker system df
# 清理未使用的Docker资源docker system prune -a
# 清理Docker日志sudo sh -c 'truncate -s 0 /var/lib/docker/containers/*/*-json.log'- 检查用户目录:
# 查看home目录下各用户空间占用du -sh /home/*
# 查找用户目录下的大文件find /home -type f -size +100M -exec ls -lh {} \;- 清理系统旧文件:
# 清理旧的core文件find / -name core -type f -delete
# 清理0字节文件find / -size 0 -type f -delete- 检查并清理邮件队列(如果有邮件服务):
# 查看邮件队列目录大小du -sh /var/spool/mail/du -sh /var/spool/postfix/- 检查数据库文件(如果有):
# MySQL数据目录du -sh /var/lib/mysql/*
# PostgreSQL数据目录du -sh /var/lib/pgsql/*清理后:
# 再次检查磁盘使用情况df -h
# 如果还需要进一步分析ncdu -x /docker层
- 首先查看 Docker 系统占用情况:
# 查看 Docker 磁盘使用详情docker system df -v
# 查看具体目录占用du -sh /var/lib/docker/*- 清理未使用的 Docker 资源:
# 清理所有未使用的容器、网络、镜像(包括未被任何容器使用的镜像)和构建缓存docker system prune -a --volumes
# 仅清理悬空镜像(dangling images)docker image prune
# 清理未使用的数据卷docker volume prune
# 清理未使用的网络docker network prune- 清理 Docker 日志文件:
# 查找大的日志文件find /var/lib/docker/containers/ -type f -name "*.log" -exec ls -lh {} \;
# 清空所有容器的日志文件sudo sh -c 'truncate -s 0 /var/lib/docker/containers/*/*-json.log'
# 或者使用循环清理for i in $(docker ps -q); do echo "Cleaning logs for $i..."; truncate -s 0 $(docker inspect --format='{{.LogPath}}' $i); done- 限制容器日志大小:
# 修改 Docker 守护进程配置sudo vim /etc/docker/daemon.json
# 添加以下内容{ "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file": "3" }}
# 重启 Docker 服务sudo systemctl restart docker- 删除指定时间之前的资源:
# 删除24小时前已停止的容器docker container prune --filter "until=24h"
# 删除24小时前的镜像docker image prune -a --filter "until=24h"- 手动删除特定资源:
# 停止所有运行的容器docker stop $(docker ps -aq)
# 删除所有已停止的容器docker rm $(docker ps -aq -f status=exited)
# 删除所有未使用的镜像docker rmi $(docker images -q -f dangling=true)- 清理构建缓存:
# 清理构建缓存docker builder prune -a
# 或者指定时间docker builder prune --filter until=24h- 查看并删除大文件:
# 查找 Docker 目录下的大文件find /var/lib/docker -type f -size +100M -exec ls -lh {} \;
# 检查overlay2目录(通常占用最大)du -sh /var/lib/docker/overlay2/*- 迁移 Docker 根目录(如果根分区空间不足):
# 停止 Docker 服务sudo systemctl stop docker
# 创建新目录sudo mkdir /data/docker
# 编辑 Docker 配置sudo vim /etc/docker/daemon.json{ "data-root": "/data/docker"}
# 复制现有 Docker 目录sudo rsync -avz /var/lib/docker/ /data/docker
# 重启 Docker 服务sudo systemctl restart docker- 设置自动清理:
# 创建定时清理脚本cat > /etc/cron.daily/docker-cleanup << 'EOF'#!/bin/bashdocker system prune -af --volumesfind /var/lib/docker/containers/ -type f -name "*.log" -exec truncate -s 0 {} \;EOF
# 添加执行权限chmod +x /etc/cron.daily/docker-cleanup 分享
如果这篇文章对你有帮助,欢迎分享给更多人!
linux centos 磁盘异常占用满了排查和解决
https://www.motouguai.com/posts/linux-centos-ci-pan-yi-chang-zhan-yong-man-liao-pai-cha-he-jie-jue-zld0xz/ 部分信息可能已经过时
相关文章 智能推荐
1
supervisor 进程管理工具 (监听、启动、停止、重启一个或多个进程或自动重启)
DevOps 与运维 教程方向: 快速上手, 解决使用中遇到的一些问题使用环境: Centos7.2 安装:yum install supervisor 配置安装好后在/etc/会生成一个supervisord.conf文件及一个supervisord.d文件目录 Supervisord.conf是一些默认配置,可自行参考一些配置文件教程修改 我们主要修改 /etc/superv
2
阿里云日志服务监控访问日志
DevOps 与运维 添加日志服务 网址 点击创建Project 名称填好,所属区域选择需要监控的服务器的所在区域 接下来会出现弹出窗: 点击创建,或不小心关掉 点击名称进入下列2图界面 创建Logstore 这些根据提示填写好就行了. 数据接入 点击确认会出现此框点击数据接入向导,如果没有在2图数据接入想到下面有个按钮点几下 选择你需要的 - 配置规则. 这里要注意的只有日志路
3
rtmp流媒体 nginx服务端搭建
DevOps 与运维 标签(空格分隔): 直播 mkdir nginx 切换到nginx目录,下载压缩包并解压到当前工作目录: wget http://nginx.org/download/nginx-1.12.1.tar.gz tar -zxvf nginx-1.12.1.tar.gz 安装依赖的的库: sudo apt-get install libssl-dev libpc
4
Docker配置开发环境常用命令_参数详解(1
DevOps 与运维 Docker配置开发环境常用命令_参数详解标签(空格分隔): docker 在下载image后我们需要一个可以运行项目的环境
5
Docker配置开发环境常用命令_参数详解(3
DevOps 与运维 文章不兼容, 已放到时光机