#!/bin/bash #备份kolla的镜像 LIST=" " #可在外面执行脚本的时候带上参数 TXT=/root/tmp.txt BAKDIR=/usr/local/bak LOGDIR=/usr/local/bak/log LOGFILE=$LOGDIR/`date +%Y%m%d`.log [ ! -d $BAKDIR ] && mkdir -p $BAKDIR [ ! -d $LOGDIR ] && mkdir -p $LOGDIR
#此部分为用户自定义备份镜像(即部分备份) if [ ! -n "$LIST" ] then for list in $LIST do RESLIST=`docker images |grep $list | awk ‘{print $1}‘` for reslist in $RESLIST do RESTAG=`docker images |grep "$reslist" |awk ‘{a=$1":"$2;print a }‘` BAKNAME=`docker images |grep "$reslist" |awk ‘{a=$1":"$2;print a }‘|sed ‘s/\//_/g‘` /usr/bin/docker save $RESTAG -o $BAKDIR/$BAKNAME.tar >> $LOGFILE 2>&1 done done
#全备部分 else RTI=`docker images |awk ‘{print $1,$2,$3}‘|sed 1d > $TXT` #RTI表示仓库名、tag名、imagesID,sed 1d 表示删除第一行 RESLIST=`cat $TXT|awk ‘{print $1}‘` #RESLIST表示镜像的名字(包含仓库路径) for reslist in $RESLIST do RESTAG=`docker images |grep "$reslist" |awk ‘{a=$1":"$2;print a }‘` BAKNAME=`docker images |grep "$reslist" |awk ‘{a=$1":"$2;print a }‘|sed ‘s/\//_/g‘` docker save $RESTAG -o $BAKDIR/$BAKNAME.tar >> $LOGFILE 2>&1 done /usr/bin/rm -f $TXT fi
原文:https://www.cnblogs.com/zjz20/p/12172573.html