#!/bin/bash

##check workdir##
if [ `ls /var/lib/docker/ | grep overlay2 | wc -l` -ne 0 ]
then
    dir="/var/lib/docker/"
else
    dir="/data/docker/"
fi

##clean container's log##
for log_dir in `du -sh $dir/containers/* | grep G | awk '{print $2}'`
do
    file_name=`echo $log_dir | awk -F "/" '{print $6}'`
    > $log_dir/$file_name-json.log
done


##container space check##
for overlay2_dir in `du -sh $dir/overlay2/* | grep G | awk '{print $2}'`
do
    overlay2_dir_G=`du -sh $overlay2_dir | grep G | cut -d 'G' -f 1 | cut -d '.' -f 1`
    if [ $overlay2_dir_G -gt 30 ]
    then
        overlay2_file_name=`echo $overlay2_dir | awk -F "/" '{print $6}'`
        container_name=`docker ps -q | xargs docker inspect --format '{{.State.Pid}}, {{.Id}}, {{.Name}}, {{.GraphDriver.Data.WorkDir}}' | grep "$overlay2_file_name" | awk -F ',' '{print $3}' | cut -d '/' -f 2`
        pod_name=`echo $container_name | awk -F '_' '{print $3}'`
        ns=`echo $container_name | awk -F '_' '{print $4}'`
        if [ `echo $container_name | grep '_' | wc -l` -ne 0 ]
        then
            echo -e "container:$container_name nnamespace:$ns npod:$pod_name n容器占用磁盘空间$overlay2_dir_G G,需检查"
        else
            echo "$overlay2_dir运行容器实例,可执行docker system prune -a --volumes释放空间"
        fi
    fi
done

原文地址:https://blog.csdn.net/q2524607033/article/details/134771191

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_36048.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注