shell脚本之一键部署yum本地源兼yum阿里源,再也不用为程序的下载安装烦扰!

yum本地源兼yum阿里源

1. 编写脚本情况分析

  1. 可以对官方源进行判断,然后选择是否做备份;
  2. 可以选择配置本地源、阿里源或者同时兼备;
  3. 设置的第一优先级为:yum本地源;
  4. 任一环节出现问题都会退出脚本。

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 配置本地源

shell脚本之一键部署yum本地源兼yum阿里源,再也不用为程序的下载安装烦扰!
shell脚本之一键部署yum本地源兼yum阿里源,再也不用为程序的下载安装烦扰!

3.2 配置阿里源

shell脚本之一键部署yum本地源兼yum阿里源,再也不用为程序的下载安装烦扰!

3.3 同时配置本地源和阿里源

shell脚本之一键部署yum本地源兼yum阿里源,再也不用为程序的下载安装烦扰!
shell脚本之一键部署yum本地源兼yum阿里源,再也不用为程序的下载安装烦扰!

上一篇:jar包启停shell脚本


下一篇:生产者消费者模型