linux 磁盘满了,程序运行失败,如何处理?df -h

场景:紧急呼救,上传图片失败了。我一脸懵,服务器这是又咋地了,别邪乎姐姐,姐姐胆子小啊。

一、寻找问题原因

1、OSS出问题了?

然后我尝试了 IOS 的APP是没问题的,Android提示上传失败?这就说明 OSS服务肯定是没问题的,那就看服务器吧。

Android提示上传失败,是因为他调用的后端接口上传,IOS无问题是因为自给自足,直接对接OSS,那么问题找到了,服务器接口的问题。

2、服务器到底又咋地了?

然后你就看吧,服务正常运行,看着没啥问题啊?那看看磁盘吧,不看不知道,一看吓一跳啊。

①磁盘使用查看命令:df -h

我们发现 /dev/vda3 100%了,他对应的路径 是/下,那么继续:

② 某个路径下的磁盘占用情况 du -sh *

一直往下查看,就会发现 是docker的containers很大,占据了很大的空间。

③ truncate -s 0 / rm -rf

我们发现 是json.log把磁盘大部分空间占用了,那么直接操作就好啦。

bash 复制代码
truncate -s 0 f96ecdcdbab8b8d0afae10c0ccb2892e0e5e55e493a1c0585c1c99b02c93f726-json.log
bash 复制代码
rm -rf 0 f96ecdcdbab8b8d0afae10c0ccb2892e0e5e55e493a1c0585c1c99b02c93f726-json.log

一个是清空内容,一个是删除日志.,删除需重启docker.

当然这些可以直接一个脚本 解决,不然这么多镜像,难道我还一个一个删除吗?哈哈哈。

bash 复制代码
脚本内容:
#!/bin/bash
echo "==================== start clean docker containers logs =========================="

logs=$(find /var/lib/docker/containers/ -name *-json.log)

for log in $logs
        do
                echo "clean logs : $log"
                cat /dev/null > $log
        done

echo "==================== end clean docker containers logs   =========================="
相关推荐
刘婉晴1 小时前
【K8S】配置和连接介绍
运维
是枚小菜鸡儿吖1 小时前
Windows 和 iPhone 怎么互传文件?用 PairDrop 搭一个自己的浏览器传输入口
服务器·人工智能·大模型
网硕互联的小客服1 小时前
如何在Ubuntu系统上查看和刷新DNS缓存?操作方法与原理解析
运维·服务器·网络·ubuntu
三8441 小时前
云安全 · 02 · 容器与 Docker 安全基础
web安全·docker·云安全
码农学院1 小时前
制造业B2B官网GEO实战:用 Python 向量相似度给老产品手册自动补语义内链,让 AI 爬虫抓得更深
运维·人工智能·爬虫·ai优化aio
qeen871 小时前
【Linux】操作系统之进程介绍(一)
linux·笔记·学习·进程
亚川楼宇自控系统数据中心厂家1 小时前
从电表到碳报告:能碳管理系统如何支撑机房双碳合规
运维
聚搜云——JuSouClouD1 小时前
2026找阿里云代理商采购GPU服务器,有没有额外折扣?
服务器·阿里云·云计算
邪修king1 小时前
Re:Linux系统篇(二十五):文件系统(一):磁盘硬件底层原理:从物理结构到 CHS/LBA 寻址,搞懂硬盘数据的定位逻辑
java·linux·运维·gpt
小则又沐风a1 小时前
TCP协议讲解-----了解TCP可靠性的基石
linux