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

Posted 码海小虾米_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell脚本之一键部署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 配置本地源

在这里插入图片描述
在这里插入图片描述

3.2 配置阿里源

在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述

以上是关于shell脚本之一键部署yum本地源兼yum阿里源,再也不用为程序的下载安装烦扰!的主要内容,如果未能解决你的问题,请参考以下文章

常用的shell脚本之一键部署DNS服务正向解析

shell脚本------一键部署yum源仓库(本地yum源和在线yum源)

shell脚本之一键部署web服务器Nginx,日常解放双手!

shell脚本集合

shell脚本集合

一键修改 yum 源为 aliyun 阿里源 Shell 脚本