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   =========================="
相关推荐
SelectDB13 小时前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
AlfredZhao14 小时前
Docker 容器时区不对,`timedatectl` 不存在怎么办?
linux·timezone
曲幽20 小时前
别再用网页翻译看源码了!你的私人翻译神器LibreTranslate,部署避坑指南来了
python·docker·web·pot·translate·libretranslate·arogstranslate
zzzzzz3102 天前
9K Star 炸裂开源!这个 C 语言写的代码知识图谱,把 Linux 内核索引压缩到了 3 分钟
linux·服务器·sql
XIAOHEZIcode2 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220703 天前
如何搭建本地yum源(上)
运维
武子康3 天前
调查研究-183 Apple container:Mac 上用轻量 VM 跑 Linux 容器,Swift 会改写本地容器体验吗?
docker·容器·apple
A小辣椒4 天前
TShark:Wireshark CLI 功能
linux
A小辣椒4 天前
TShark:基础知识
linux
AlfredZhao4 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci