以下脚本由我学生提交,亲测可用,可以轻松实现切换国内源,按自己喜好拷贝使用其中之一即可。
#!/bin/bash
#function:练习
#author:ming 20220614
if
[ ! -e /root/yum.repos.d ]
then
mkdir /root/yum.repos.d
fi
cp -rf /etc/yum.repos.d/* /root/yum.repos.d
rm -rf /etc/yum.repos.d/*
ali_yum() {
wget -O /etc/yum.repos.d/aliyun.repo http://mirrors.aliyum.com/repo/Centos-7.repo
yum clean all
yum makecache
}
wy_yum() {
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
yum clean all
yum makecache
}
huawei_yum() {
wget -O /etc/yum.repos.d/huaweicloud.repo https://repo.huaweicloud.com/repository/conf/CentOS-7-reg.repo
yum clean all
yum makecachecd
}
re_yum() {
cp -rf /root/yum.repos.d/* /etc/yum.repos.d
rm -rf /root/yum.repos.d/*
yum clean all
yum makecache
}
echo "YUM源有:ali wy huawei re"
read -p "请输入一个yum源并按Enter键确认:" YUM
case "$YUM" in
ali)
echo "你选择的是阿里云yum源,将开始为你配置"
ali_yum
;;
wy)
echo "你选择的是网易yum源,将开始为你配置"
wy_yum
;;
huawei)
echo "你选择的是阿里云yum源,将开始为你配置"
huawei_yum
;;
re)
echo "你选择的是初始源,将开始为你配置"
re_yum
;;
*)
echo "你输入的是其他选择,现在只能选择这些"
esac
yum install -y httpd &> /dev/null
if [ $? -eq 0 ]
then
echo "配置完成"
fi
#/bin/bash
#function:却换源
#author:tommypeng 20220623
wget=$(rpm -qa |grep wget)
if [ $? -eq 0 ]
then
echo "软件包wgat已安装即将进入下一步"
else
yum install wget -y
echo "即将安装wget软件包"
fi
read -p "请输入需要却换的yum源的序号,如1.本地源、2.阿里云镜像源、3.163镜像源、4.华为镜像源:" qh
case "$qh" in
1)
echo "您选择的是本地源,即将开始切换."
#创建本地源文件夹
mkdir /mnt/ncw
#指定挂载镜像目录
mount /dev/cdrom /mnt/ncw
#检测是否挂载成功
if [ $? -eq 0 ];then
echo "挂载成功,即将进入下一步"
else
echo "挂载失败,请检查是否已挂载或路径错误"
fi
#备份原本地源
cp -rf /etc/yum.repos.d /etc/yum.repos.d_$(date '+%Y%m%d_%H%M%S')
#进入yum目录删除默认原本地源
rm -f /etc/yum.repo.d/*
#创建local.repo文件
touch local.repo
echo "[local]" > /etc/yum.repos.d/local.repo
echo "name=local" >> /etc/yum.repos.d/local.repo
echo "baseurl=file:///mnt/ncw" >> /etc/yum.repos.d/local.repo
echo "gpgcheck=0" >> /etc/yum.repos.d/local.repo
echo "enabled=1" >> /etc/yum.repos.d/local.repo
#更新yum配置
yum clean all
yum makecache
;;
2)
echo "您选择的是阿里云镜像源,即将开始切换."
#切换到yum的安装目录
cd /etc/yum.repos.d/
#备份原文件
cp -rf /etc/yum.repos.d /etc/yum.repos.d_$(date '+%Y%m%d_%H%M%S')
#下载阿里云镜像源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
#清理yum的已有缓存
yum clean all
#生产yum的缓存
yum makecache
;;
3)
echo "您选择的是163网易镜像源,即将开始切换"
#备份原文件
cp -rf /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_$(date '+%Y%m%d_%H%M%S')
#下载163镜像源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
#清理yum的已有缓存
yum clean all
#生产yum的缓存
yum makecache
;;
4)
echo "您选择的是华为镜像源,即将开始切换"
#备份原文件
cp -rf /etc/yum.repos.d /etc/yum.repos.d_$(date '+%Y%m%d_%H%M%S')
#下载华为镜像源
wget -O /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-7-reg.repo
#清理yum的已有缓存
yum clean all
#生产yum的缓存
yum makecache
;;
*)
echo "请输入正确的序列号"
esac
#!/bin/bash
#yum install -y "wget" >> /dev/null
cd /etc/yum.repos.d
rm -rf /etc/yum.repos.d/*
read -p "请输入要安装的yum源(ali|163|huawei|re|qhdx):" Y
case "$Y" in
ali)
cd /etc/yum.repos.d
rm -rf /etc/yum.repos.d/*
echo "正在安装yum阿里云"
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo &> /dev/null
if [ $? -eq 0 ];then
echo "yum阿里云已安装完成"
else
echo "yum阿里云安装失败"
fi
yum clean all &> /dev/null
if [ $? -eq 0 ];then
echo "yum缓存已清除"
else
echo "yum缓存清除失败"
fi
yum makecache &> /dev/null
if [ $? -eq 0 ];then
echo "yum已更新"
else
echo "yum更新失败"
fi ;;
huawei)
cd /etc/yum.repos.d
rm -rf /etc/yum.repos.d/*
wget -O /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-8-reg.repo
echo "正在切换华为云yum源"
if [ $? -eq 0 ];then
echo "华为云yum源已安装完成"
else
echo "华为云yum源安装失败"
fi
yum clean all &> /dev/null
if [ $? -eq 0 ];then
echo "yum缓存已清除"
else
echo "yum缓存清除失败"
fi
yum makecache &> /dev/null
if [ $? -eq 0 ];then
echo "yum已更新"
else
echo "yum更新失败"
fi ;;
163)
cd /etc/yum.repos.d
rm -rf /etc/yum.repos.d/*
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
if [ $? -eq 0 ];then
echo "163yum源已安装完成"
else
echo "163yum源安装失败"
fi
yum clean all &> /dev/null
if [ $? -eq 0 ];then
echo "yum缓存已清除"
else
echo "yum缓存清除失败"
fi
yum makecache &> /dev/null
if [ $? -eq 0 ];then
echo "yum已更新"
else
echo "yum更新失败"
fi ;;
re)
cd /etc/yum.repos.d
rm -rf /etc/yum.repos.d/*
touch local.repo
cat >> /etc/yum.repos.d/local.repo << EOF
[local]
name=zwz
baseurl=file:///mnt
enabled=1
gpgcheck=0
EOF
umount /dev/cdrom
mount /dev/cdrom /mnt
yum clean all &> /dev/null
if [ $? -eq 0 ];then
echo "yum缓存已清除"
else
echo "yum缓存清除失败"
fi
yum makecache &> /dev/null
if [ $? -eq 0 ];then
echo "yum已更新"
else
echo "yum更新失败"
fi ;;
qhdx)
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo --no-check-certificate
if [ $? -eq 0 ];then
echo "qhdxyum源已安装完成"
else
echo "qhdxyum源安装失败"
fi
yum clean all &> /dev/null
if [ $? -eq 0 ];then
echo "yum缓存已清除"
else
echo "yum缓存清除失败"
fi
yum makecache &> /dev/null
if [ $? -eq 0 ];then
echo "yum已更新"
else
echo "yum更新失败"
fi ;;
*)
echo "用法: 脚本(./yum.sh)+{ali|huawei|163|re|qhdx}"
echo "ali (阿里云yum源) | huawei(华为云yum源) | 163(网易yum源) | re(本地yum源) | qhdx(清华大学yum源))"
esac
#!/bin/bash
echo "备份本地yum源,第一次执行备份,之后请选择no否则会出现问题"
echo "1为 YES"
echo "2为 NO"
until [[ "$choice" =~ ^[1-2]$ ]]
do
echo "请选择 1 or 2"
read -rp "choice [1-2]:" -e choice
done
if [ "$choice" == 1 ]
then
mkdir /etc/tomgoud
cp /etc/yum.repos.d/* /etc/tomgoud/
echo "备份成功,如果本次不是第一次,那么去/etc/tomgoud中多出的文件删除!!!"
else
echo "退出备份,如果本次是部署第一次,如果是那么退出脚本,重新备份!!!"
fi
ping -c 2 www.baidu.com
if [ $? = 0 ]
then
echo "外网连接成功"
else
echo "外网连接失败,将退出脚本"
exit
fi
wyyum() {
rm -rvf /etc/yum.repos.d/*
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
yum clean all
yum makecache
yum repolist
}
alyum() {
rm -rvf /etc/yum.repos.d/*
wget http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache
yum repolist
}
bdiyum() {
rm -rvf /etc/yum.repos.d/*
cp /etc/tomgoud/* /etc/yum.repos.d/
yum clean all
yum makecache
yum repolist
}
read -p "选择安装yum源
1:网易
2:阿里
3:本地:" qwe
case "$qwe" in
1)
wyyum
;;
2)
alyum
;;
3)
bdiyum
;;
esac
if [ $? = 0 ]
then
echo "安装完成"
else
echo "安装失败"
fi