utils/createrepo.sh

#!/bin/bash
#通过dirname $0得到$0的决定地址,然后cd 到这个地址,执行pwd。将这个结果返回给CUR_DIR 得到当前路径
CUR_DIR=$(cd `dirname $0`; pwd)

VERSION="5.0"
#如果输入的参数等于2 说明有给VERSION 这个参数赋值,这样就可以覆盖默认的值"5.0"
if [ $# -eq 2 ];then
        VERSION=$2
fi

#执行这function_cmd_scp.sh 这个脚本,这样就可以用sshcmd和sshscp 这两个函数
. ${CUR_DIR}/function_cmd_scp.sh
IP="117.78.41.188"
loginuser="repo"
loginpassword=`cat /home/PASSWORD_REPO`

TARGETOS=$1

###############################################################################################
# Utility to create deb repo"
###############################################################################################
create_deb_repo() {
#原来第一个参数是设置是何种发行版的
    platform=$1    
#在远程机器上执行命令,如果不存在binary-arm64  这个文件夹,则通过mkdir -p 新建这个文件夹  
    sshcmd " \[ -d /est-repo/releases/${VERSION}/${platform}/dists/estuary-${VERSION}/main/binary-arm64 \] || mkdir -p /est-repo/releases/${VERSION}/${platform}/dists/estuary-${VERSION}/main/binary-arm64 "
#得到home 目录,这里是通过双信号赋值,前面是通过$赋值
    home_dir="$(cd ~ ; pwd)"
    tmp_dir="${home_dir}/debrepo_release/"
#如果已经存在tmp 这个命令,则删除这个目录,这里应该用rm -rfv 这样就可以看出具体删除了那些目录。如果目录不存在,则新建目录
    if [ -d ${tmp_dir} ] ; then 
        rm -fr ${tmp_dir}/*
    else
        mkdir -p ${tmp_dir}
    fi
#下载文件并保存到特定目录
    wget -O ${tmp_dir}/Release ftp://repoftp:repopushez7411@117.78.41.188/releases/${VERSION}/${platform}/dists/estuary-${VERSION}/Release
#gpg 是加密相关的
    gpg --batch --passphrase-file /home/KEY_PASSPHRASE  --yes --default-key "3108CDA4" --armor --output ${tmp_dir}/Release.gpg --detach-sig ${tmp_dir}/Release
#执行scp 命令
    sshscp ${tmp_dir}/Release.gpg /est-repo/releases/${VERSION}/${platform}/dists/estuary-${VERSION}/ no to
}

通过= 来判断字符串是否相等,如果是centos 则通过在远程机器上执行createrepo。如果是debian和ubuntu的话,则直接调用create_deb_repo 函数
if [ "${TARGETOS}" = "CentOS" ] || [ "${TARGETOS}" = "centos" ] ; then
    sshcmd "createrepo /est-repo/releases/${VERSION}/centos"	
elif [ "${TARGETOS}" = "Ubuntu" ] || [ "${TARGETOS}" = "ubuntu" ] ; then
    create_deb_repo "ubuntu"
elif [ "${TARGETOS}" = "Debian" ] || [ "${TARGETOS}" = "debian" ] ; then
    create_deb_repo "debian"
else
    echo "Currently it only support CentOS, Ubuntu or Debian"
    exit 0
fi
#$?表示返回值,如果小于0,则表示前一个命令执行失败,通过echo输出失败的log
if [ $? -ne 0 ];then
	echo "repo create failed!"
else
	echo "repo create successfully!"
fi


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值