定期下载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