这是我参与8月更文挑战的第2天,活动详情查看:8月更文挑战
起因
某一天,线上服务器突然登录不了,查看了错误日志,发现是说存储空间满了。内心是充满疑惑得,记得也没什么地方会大量占用存储空间。
过程
排查过程
使用命令:du -h --max-depth=1,查看当前目录下文件夹大小,之后一路路排查下去
最终发现,是这个 containers 容器文件夹占比最大
查看占空间最大的容器文件夹,发现是 个log日志文件,26.8G大 (吐血),没想到日志文件可以这么大(T_T)
找到了问题所在,之后就好处理了
结论
docker容器的日志,没有限制大小,随着时间推移,日志大小开始膨胀了起来,导致主机磁盘空间满了
处理
方法
删除日志文件,但是不能用rm rf方式删除,因为该日志文件还是处于被打开状态,那么进程将仍然可以读取该文件,磁盘空间也一直被占用。
- 但是你也可以通过rm -rf删除后重启docker
所以使用 cat /dev/null > *-json.log 命令删除
处理后结果
QAQ,存储空间释放了
为了以后方便,新建个docker日志清除脚本命令
#!/bin/sh
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 ========"
# chmod +x clean_docker_log.sh
# ./clean_docker_log.sh