shell脚本获取harbor仓库特定项目所有镜像

 一、脚本

# cat harbor-image-listk-v2.sh
#!/bin/bash
Harbor_Address=192.168.110.30       #Harbor主机地址
Harbor_User=admin                      #登录Harbor的用户
Harbor_Passwd=Harbor12345              #登录Harbor的用户密码
Images_File=harbor-images-`date '+%Y-%m-%d'`.txt   # 镜像清单文件
Tar_File=/tmp/Harbor-backup                 #镜像tar包存放路径
if [ -d $Tar_File ];then
  rm -rf $Tar_File
  mkdir $Tar_File/jiaoda -p
else
  mkdir $Tar_File/jiaoda -p
fi
set -x
# 获取Harbor中所有的项目(Projects)
Project_List=$(curl -u admin:Harbor12345  -H "Content-Type: application/json" -X GET  http://192.168.110.30/api/v2.0/projects  -k  | python -m json.tool | grep name | awk '/"name": /' | awk -F '"' '{print $4}')

for Project in $Project_List;do
   # 循环获取项目下所有的镜像
    Image_Names=$(curl -u admin:Harbor12345 -H "Content-Type: application/json" -X GET http://192.168.110.30/api/v2.0/projects/$Project/repositories?page_size=100 -k | python -m json.tool | grep name | awk '/"name": /' | awk -F '"' '{print $4}')
    for Image in $Image_Names;do
        if [ $Image == jiaoda/rabbitmq ]
        then
          continue
        elif [ $Image == jiaoda/os-shell ]
        then
          continue
        elif [ $Image == jiaoda/nginx ]
        then
          continue
        elif [ $Image == jiaoda/rocketmq ]
        then
          continue
        elif [ $Image == jiaoda/python3.8 ]
        then
          continue
        elif [ $Image == jiaoda/python3.8-requests ]
        then
          continue
        elif [ $Image == jiaoda/centos7 ]
        then
          continue
        elif [ $Image == jiaoda/mqtt ]
        then
          continue
        elif [ $Image == jiaoda/jdk17 ]
        then
          continue
        elif [ $Image == jiaoda/admin-ui ]
        then
          continue
        elif [ $Image == jiaoda/test ]
        then
          continue
        elif [ $Image == jiaoda/jdk ]
        then
          continue
        elif [ $Image == jiaoda/vue ]
        then
          continue
        else
            # 循环获取镜像的版本(tag)
            Image_Tags=$(curl -u admin:Harbor12345  -H "Content-Type: application/json"   -X GET  http://192.168.110.30/v2/$Image/tags/list?page_size=100  -k | awk -F '"]}' '{print $1}'| awk -F '"' '{print $NF}')
            # 格式化输出镜像信息
            echo "$Harbor_Address/$Image:$Image_Tags"   >> images-`date '+%Y-%m-%d'`.txt
            docker pull $Harbor_Address/$Image:$Image_Tags
            docker tag $Harbor_Address/$Image:$Image_Tags harbor.test.com/$Image:$Image_Tags
            docker rmi $Harbor_Address/$Image:$Image_Tags
            docker save -o $Tar_File/$Image$Image_Tags.tar harbor.test.com/$Image:$Image_Tags
            docker rmi harbor.test.com/$Image:$Image_Tags
        fi
    done
done

二、效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值