Docker在微服务中广泛应用,其与生俱来的json文件随着微服务运行时间增长而不断加大,从百M到N个G不断攀升,造成磁盘爆满,影响业务。(图1)
系统中微服务的数量多,容器多,一个一个清理这些文件比较费时费力,此时可以用脚本实现,分分钟准确快速清理,提高工作效率,执行结果(图3)。
具体脚本如下:(图2)
#!/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 ============"
这里用到的知识点,主要有for循环,find命令,以及清空日志文件的方式cat /dev/null > 日志文件。