您的位置:首页 > 汽车 > 新车 > shell脚本获取harbor仓库特定项目所有镜像

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

2025/4/6 11:10:24 来源:https://blog.csdn.net/tingting0119/article/details/142177932  浏览:    关键词: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 ];thenrm -rf $Tar_Filemkdir $Tar_File/jiaoda -p
elsemkdir $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;doif [ $Image == jiaoda/rabbitmq ]thencontinueelif [ $Image == jiaoda/os-shell ]thencontinueelif [ $Image == jiaoda/nginx ]thencontinueelif [ $Image == jiaoda/rocketmq ]thencontinueelif [ $Image == jiaoda/python3.8 ]thencontinueelif [ $Image == jiaoda/python3.8-requests ]thencontinueelif [ $Image == jiaoda/centos7 ]thencontinueelif [ $Image == jiaoda/mqtt ]thencontinueelif [ $Image == jiaoda/jdk17 ]thencontinueelif [ $Image == jiaoda/admin-ui ]thencontinueelif [ $Image == jiaoda/test ]thencontinueelif [ $Image == jiaoda/jdk ]thencontinueelif [ $Image == jiaoda/vue ]thencontinueelse# 循环获取镜像的版本(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'`.txtdocker pull $Harbor_Address/$Image:$Image_Tagsdocker tag $Harbor_Address/$Image:$Image_Tags harbor.test.com/$Image:$Image_Tagsdocker rmi $Harbor_Address/$Image:$Image_Tagsdocker save -o $Tar_File/$Image$Image_Tags.tar harbor.test.com/$Image:$Image_Tagsdocker rmi harbor.test.com/$Image:$Image_Tagsfidone
done

二、效果

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com