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 同时配置本地源和阿里源