清空docker容器日志

文章描述了一个Bash脚本,用于自动化清理/var/lib/docker/containers目录下各容器的日志文件(*-json.log)。脚本首先列出所有容器目录,然后检查并清空每个日志文件,避免直接删除以防止无法重新生成。
摘要由CSDN通过智能技术生成

docker容器安装在/var/lib/docker/containers目录下,发现他的*-json.log的文件很大,需要把这个日志文件清空,我又不敢直接删除,怕删除了就不能在生成这个文件了,我就写一个空值到日志文件,而且容器个数很多,手动执行是不可能的,我就写了个简单的批量清空docker容器日志的脚本
docker日志文件的结构如下:

[root@host ~]# ll /var/lib/docker/containers/e13ed5ebc94e5c910d651e86eee7089d5268b4f2681521a13584f1554d92df0d
total 104K
drwxrwxrwx 2 root root 4.0K Mar 10 15:11 checkpoints
-rwxrwxrwx 1 root root 3.7K Mar 14 08:30 config.v2.json
-rwxrwxrwx 1 root root  680M Jun  7 23:24 e13ed5ebc94e5c910d651e86eee7089d5268b4f2681521a13584f1554d92df0d-json.log
-rwxrwxrwx 1 root root 1.6K Mar 14 08:30 hostconfig.json
-rwxrwxrwx 1 root root   13 Mar 14 08:30 hostname
-rwxrwxrwx 1 root root  174 Mar 14 08:30 hosts
drwxrwxrwx 2 root root 4.0K Mar 10 15:11 mounts
-rwxrwxrwx 1 root root  133 Mar 14 08:30 resolv.conf
-rwxrwxrwx 1 root root   71 Mar 14 08:30 resolv.conf.hash

在/var/lib/docker/containers/这个目录下面是各容器的目录,一串很长的字符,在容器里面的日志的有一段是跟上层目录的是一致的,后面的-json.log,在每个容器里面都是一样的。

#!/bin/bash
#将/var/lib/docker/containers目录下的目录都找出来存到logsdir.txt这个里面
ls /var/lib/docker/containers >/newdata/package/logsdir.txt

#循环读取logsdir.txt的值到dir变量
while read dir
do
        #再将包含日志的文件夹里面的内容都重定向到files.txt
        ls /var/lib/docker/containers/$dir >/newdata/package/files.txt
        #循环读取files.txt的内容到file变量
        while read file
        do
                #拼接日志文件
                houzhui="-json.log"
                log=$dir$houzhui
                #只是日志文件名写到test.txt里面核对下,可以不要
                echo $log > /newdata/package/test.txt
                #判断哪个文件是日志文件,是日志文件就写空值进去
                if [ $file == $log ];then
                        echo "" >/var/lib/docker/containers/$dir/$file
                fi
        done < /newdata/package/files.txt

done </newdata/package/logsdir.txt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

javascript_good

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值