标签搜索

目 录CONTENT

文章目录

派 · 折腾笔记 - 一键清除docker日志

沙漠渔
2024-04-02 08:29:20 / 0 评论 / 0 点赞 / 145 阅读 / 874 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2024-04-02,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

能看到这里说明可能遇到了和我一样的问题,对,服务器存储不够用了。

通过上一篇 查看docker的日志大小 里面可以看到容器的日志竟然达到G级别,而这只是我测试用的虚拟机里面,还不是服务器,真正的服务器里的docker日志最高的到了27G!df -h查看只剩下8G存储空间可用,所以必须尽快删除日志了。

困惑

说到删除,喀喀喀,不多说,直接rm了,结果df发现存储空间并没有空闲出来啊。原因是在Linux或者Unix系统中,通过rm -rf或者文件管理器删除文件,将会从文件系统的目录结构上解除链接(unlink)。如果文件是被打开的(有一个进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用。

解决

正确的删除方法:cat /dev/null > *-json.log。

结合查看日志的大小的方式,日志清理的脚本奉上:

#!/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

当然这种方式清理过后还是会再次慢慢增加起来,你想到什么了?没错,大不了价格周期任务就是了 cron!

这里仅提供一个思路,当然网上还有很多其他方式,比如修改docker配置、配置容器docker-compose等,对于我来说一个是不实用(只针对新容器)、一个是难度大(没安装compose),所以直接简单粗暴的解决掉再说吧。

0
广告 广告

评论区