shell脚本之一键部署yum本地源兼yum阿里源,再也不用为程序的下载安装烦扰!
Posted 码海小虾米_
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell脚本之一键部署yum本地源兼yum阿里源,再也不用为程序的下载安装烦扰!相关的知识,希望对你有一定的参考价值。
1. 编写脚本情况分析
- 可以对官方源进行判断,然后选择是否做备份;
- 可以选择配置本地源、阿里源或者同时兼备;
- 设置的第一优先级为:yum本地源;
- 任一环节出现问题都会退出脚本。
2. 脚本代码部分
#!/bin/bash
# 一键部署yum本地源、阿里源或同时兼备
# anthor:cheng
# 2021年 06月 010日 星期三 13:15:26 CST
# 备份官方yum源
backup (){
if ls /etc/yum.repos.d/ | grep repo.bak &> /dev/null
then
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/repo.bak/
else
mkdir /etc/yum.repos.d/repo.bak/
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/repo.bak/
fi
}
# 配置本地yum源
yumm(){
echo -e "[local]\\nname=local\\nbaseurl=file:///mnt\\nenable=1\\ngpgcheck=0" > /etc/yum.repos.d/local.repo
}
# 配置阿里yum源
ali () {
echo -e "\\033[35;5m 正在下载阿里yum源,请稍等............ \\033[0m"
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo &> /dev/null
}
# 对光盘进行挂载
cdmount(){
# 如果光盘被挂载就解挂重新挂,没有就进行挂载
if df -h | grep /dev/sr0 &> /dev/null
then
umount /dev/sr0
mount /dev/cdrom /mnt &> /dev/null
echo -e '\\033[36m 光盘已挂载至/mnt目录!\\033[0m'
else
mount /dev/cdrom /mnt &> /dev/null
if [ $? -ne 0 ]
then
echo "光盘不存在,检查是否加载镜像,状态是否已连接!"
exit
fi
fi
}
# yum缓存清除并重新建立
clean (){
if yum clean all &> /dev/null
then
if yum makecache &> /dev/null
then
echo -e '\\033[33m yum缓存已清除并重新建立!可以正常安装程序!\\033[0m'
else
echo "yum缓存建立失败!"
fi
else
echo "yum缓存清除失败......"
fi
}
choose(){
echo -e '\\033[33m 输入对应的[数字]选择yum源!\\033[0m'
read -p "本地源[1]|阿里源[2]|同时配置[3]退出[任意] :" rd
case $rd in
"1")
backup
yumm
cdmount
clean
echo -e '\\033[33m 本地源已配置完成!\\033[0m'
;;
"2")
backup
ali
clean
echo -e '\\033[33m 阿里官方源已配置完成!\\033[0m'
;;
"3")
backup
ali
if (rpm -q yum-plugin-priorities.noarch) &> /dev/null
then
continue
else
yum install -y yum-plugin-priorities.noarch &> /dev/null
if [ $? -eq 0 ];then
continue
else
echo -e \\"yum-plugin-priorities.noarch\\"安装失败
exit
fi
fi
yumm
echo -e "priority=3\\n[epel]\\nname=epel\\nbaseurl=https://mirrors.aliyun.com/epel/7Server/x86_64/\\nenabled=1\\ngpgcheck=0\\npriority=2" >> /etc/yum.repos.d/local.repo
cdmount
clean
echo -e '\\033[33m 本地源和阿里官方源已配置完成!(优先本地源)\\033[0m'
;;
*)
echo -e '\\033[33m 脚本已退出.....\\033[0m'
esac
}
echo -e '\\033[33m -----------正常网络测试中--------------\\033[0m'
if ping -c 3 baidu.com &> /dev/null
then
if ls /etc/yum.repos.d/ | grep CentOS-Base.repo &> /dev/null
then
choose
else
echo -e '\\033[33m 网络正常,官方在线源不存在!\\033[0m'
choose
fi
else
echo -e '\\033[33m 网络异常....配置本地源!\\033[0m'
backup
yumm
cdmount
clean
fi
3. 实验部分
3.1 配置本地源
3.2 配置阿里源
3.3 同时配置本地源和阿里源
以上是关于shell脚本之一键部署yum本地源兼yum阿里源,再也不用为程序的下载安装烦扰!的主要内容,如果未能解决你的问题,请参考以下文章
shell脚本------一键部署yum源仓库(本地yum源和在线yum源)