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 分钟前
从 WHERE 到 OFFSET:SQL 基本查询的核心逻辑
linux·数据库·sql
请输入蚊子4 分钟前
《操作系统真象还原》 第六章 完善内核
linux·汇编·操作系统·bochs·操作系统真像还原
ID_1800790547313 分钟前
淘宝商品详情API请求的全场景,带json数据参考
服务器·数据库·json
古译汉书17 分钟前
【IoT死磕系列】Day 6:工业控制底层大动脉—CAN总线
linux·网络·arm开发·单片机·物联网·tcp/ip
戴西软件19 分钟前
PreSys在爆炸与多介质流固耦合中的建模方法:从ALE到SPH的工程实践
linux·python·程序人生·cae
果壳~22 分钟前
Docker镜像离线迁移:从下载到本地部署完整实战指南
运维·docker·容器
feng68_23 分钟前
Web服务基础理论
linux·运维·服务器·web服务
打码人的日常分享23 分钟前
双碳智慧园区建设方案(PPT)
大数据·运维·网络·云计算·制造
笨蛋不要掉眼泪27 分钟前
Spring Cloud Gateway 核心篇:深入解析过滤器(Filter)机制与实战
java·服务器·网络·后端·微服务·gateway
许愿OvO35 分钟前
Tomcat部署与Nginx整合实战
运维·nginx·tomcat