1 min read

定期下载github最新k8s发布版本

定期下载github最新k8s发布版本

从api中获取仓库最近版本的下载地址,并选择最近的N个版本下载下来。

#!/usr/bin/env bash
# 文件名: download-binary-of-k8s_multiver.sh
# 功能: 获取github仓库最新发布版本并下载到本地,包含beta版本


#author=$1
#project_name=$2
count=2                       # 最新版本的数量
prefix=/data/pkg/k8s          # 下载目录

pkg_urls=$(curl -s https://api.github.com/repos/kubernetes/kubernetes/releases | jq -r .[].assets[].browser_download_url | head -n $count)

for pkg_url in $pkg_urls; do
	pkg_ver=$(echo $pkg_url | cut -d"/" -f8)
	pkg_name=$(echo ${pkg_url##*/})

	if [[ ! -e "${prefix}/${pkg_ver}/${pkg_name}" ]]; then
		mkdir -p ${pkg_ver} && wget --no-check-certificate --directory-prefix=${prefix}/${pkg_ver} $pkg_url

		# 解压
		tar axvf ${prefix}/${pkg_ver}/${pkg_name} -C ${prefix}/${pkg_ver}/

		# 下载二进制包
		echo y | ${prefix}/${pkg_ver}/kubernetes/cluster/get-kube-binaries.sh
	fi
done

以下为针对最新的稳定版本

#!/usr/bin/env bash
# 文件名: download-binary-of-k8s.sh
# 功能: 获取github仓库最新发布版本并下载到本地


#author=$1
#project_name=$2
prefix=/site/down.vqiu.cn/package/tarball/k8s

pkg_url=$(curl -s https://api.github.com/repos/kubernetes/kubernetes/releases/latest | jq -r ".assets[].browser_download_url")
pkg_ver=$(echo $pkg_url | cut -d"/" -f8)
pkg_name=$(echo ${pkg_url##*/})

if [[ ! -e "${prefix}/${pkg_ver}/${pkg_name}" ]]; then
	mkdir -p ${pkg_ver} && wget --no-check-certificate --directory-prefix=${prefix}/${pkg_ver} $pkg_url

	# 解压
	tar axvf ${prefix}/${pkg_ver}/${pkg_name} -C ${prefix}/${pkg_ver}/

	# 下载二进制包
	echo y | ${prefix}/${pkg_ver}/kubernetes/cluster/get-kube-binaries.sh
else
	echo "Version exists, exit!"
	exit 67
fi

每周天执行一次

sudo crontab -l
* * * * 0 /bin/bash /data/script/download-binary-of-k8s.sh >/dev/null 2>&1