脚本简介
- 基于运维统一脚本中,4、实用shell脚本下的实用shell脚本选项中的RPM下载
- 使用yum安装(yum仓库),系统版本Centos7
脚本注解
- 该脚本为了在已经安装yum仓库的基础上下载RPM包,并存放到指定的目录下
- 如果没有添加aliyun的yum源,则会自动安装!!!
- 可以同时下载多个,但是需要已空格分隔符
执行方式
sh rpm_download.sh
【myos 2022-05-02 18:40:34】 请根据提示选择:
请输入RPM包存放路径(/opt/rpm):
请输入RPM安装包名称:
脚本内容
#!/bin/bash
info(){
echo -e "\033[35m 【`hostname` `date '+%Y-%m-%d %H:%M:%S'`】\033[0m" "\033[36m$1\033[0m "
}
info7(){
echo -e "\033[35m 【`hostname` `date '+%Y-%m-%d %H:%M:%S'`】\033[0m" "\033[32m$1\033[0m "
}
info6(){
echo
-e "\033[33m 【`hostname` `date '+%Y-%m-%d %H:%M:%S'`】\033[0m" "\033[91m$1\033[0m "
}
info4(){
echo -e "\033[32m $1 \033[0m "
}
info2(){
echo -e "\033[34m 【`hostname` `date '+%Y-%m-%d %H:%M:%S'`】\033[0m" "\033[35m$1\033[0m "
}
rpm_run(){
local dir="$1"
info "start download ${rpm_name},wait !!!"
yum -y install --downloadonly --downloaddir=${dir} ${rpm_name} &>/dev/null
if [ $? -eq 0 ] ;then
info "${rpm_name}及相关依赖下载完成,安装包的路径是:${dir}"
else
info2 "${rpmdump_name}及相关依赖下载失败,请检查${rpm_name}的yum仓库是否配置"
exit -1
fi
}
rpm_wget_repo(){
if [ -f /etc/yum.repos.d/CentOS-Base.repo ];then
info "阿里云yum仓库已配置"
if [ `rpm -qa | grep epel-release|wc -l` -eq 0 ];then
yum -y install epel-release.noarch >/dev/null
[ $? -eq 0 ]&& info4 "epel-release 安装成功"
fi
else
curl http://mirrors.aliyun.com/repo/Centos-7.repo > /etc/yum.repos.d/CentOS-Base.repo >/dev/null
rpm_wget_repo
fi
}
rpm_log(){
info2 "使用本脚本时,需要链接外网"
info2 "请检查网络的连接"
info2 "后面的路径可以是相对路径,或者绝对路径"
}
rpm_download_run(){
info7 "请根据提示选择:"
read -p "请输入RPM包存放路径(/opt/rpm):" rpm_dir
read -p "请输入RPM安装包名称:" rpm_name
local rpm_dir=${rpm_dir:-/opt/rpm}
if [ -z ${rpm_dir} ] || [[ -z ${rpm_name} ]];then
info6 "请重新输入"
rpm_log
rpm_download_run
else
rpm_wget_repo
rpm_run ${rpm_dir} ${rpm_name}
fi
}
rpm_download_run