#!/bin/bash
#AUTHOR:AN
#DATE:2019-04-11
#DESCRIBE:快速搭建本地和网络YUM源
#输出不同颜色的字体
#$1代表颜色编号,$2代表输出内容
cecho(){
echo -e "\033[$1m$2\033[0m"
}
#创建目录,先检测目录是否存在
MKDIR(){
if [ ! -d "$1" ];then
mkdir -p "$1"
else
cecho 31 "$1已存在" #红色
read -p "重新输入目录名:" DIR
MKDIR $DIR
fi
}
config_input(){
read -p "镜像位置:" Location
read -p "配置文件名字:" Name
}
#创建YUM配置文件
#$1代表文件名;$2代表YUM源的URL地址
config_file(){
touch /etc/yum.repos.d/$1.repo
cat >>/etc/yum.repos.d/$1.repo <<EOF
[$1]
name=$1
baseurl=$2
enabled=1
gpgcheck=0
EOF
yum clean all &>/dev/null #清空yum缓存
cecho 36 "$(yum repolist |tail -1)"
cecho 36 "装包测试......"
yum -y remove xeyes &>/dev/null
yum -y install xeyes &>/dev/null
rpm -q xorg-x11-apps &>/dev/null
if [ $? -eq 0 ];then
cecho 36 "YUM创建成功"
yum -y remove xeyes &>/dev/null
exit 0
else
cecho 31 "YUM创建失败" >&2 && exit 65
fi
}
###############################主程序###############################
clear
#把原有的.repo文件放入目录repo中
if [ -d /etc/yum.repos.d/repo ];then
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/repo
else
mkdir /etc/yum.repos.d/repo
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/repo
fi
cecho 34 "**************选择YUM源类型**************"
echo "1.本地"
echo "2.网络"
while :
do
read -p "请选择(1|2):" Type
case $Type in
1)
read -p "挂载点:" Mount_Dir
MKDIR $Mount_Dir #创建挂载点
config_input #输入内容
mount $Location $Mount_Dir &>/dev/null #挂载镜像
config_file "$Name" "file://$Mount_Dir" #写入配置文件
;;
2)
cecho 34 "**************选择网络共享类型**************"
echo "1.ftp"
echo "2.http"
read -p "请选择(1|2):" Type
case $Type in
1)
config_input #输入内容
config_file "$Name" "ftp://$Location"
;;
2)
config_input #输入内容
config_file "$Name" "http://$Location"
;;
*)
cecho 31 "输入(1|2)"
esac
;;
*)
cecho 31 "输入(1|2)"
esac
done