#!/bin/bash
#shell菜單示範
function menu()
{
echo -e `date`
cat <<EOF
-----------------------------------
>>>菜單首頁:
`echo -e "\033[35m 1)系統狀态\033[0m"`
`echo -e "\033[35m 2)服務管理\033[0m"`
`echo -e "\033[35m 3)主菜單\033[0m"`
`echo -e "\033[35m Q)退出\033[0m"`
EOF
read -p "請輸入對應序列号:" num1
case $num1 in
1)
echo -e "\033[32m >>>系統狀态-> \033[0m"
system_menu
;;
2)
echo -e "\033[32m >>>服務管理-> \033[0m"
server_menu
;;
3)
echo -e "\033[32m >>>傳回主菜單-> \033[0m"
menu
;;
Q|q)
echo -e "\033[32m--------退出--------- \033[0m"
exit 0
;;
*)
echo -e "\033[31m err:請輸入正确的編号\033[0m"
menu
esac
}
function system_menu()
{
cat<<EOF
------------------------
********系統狀态********
------------------------
1)docker 狀态
2)selinux 狀态
3)firewall 狀态
X)傳回上一級目錄
------------------------
EOF
read -p "請輸入編号:" num2
case $num2 in
1)
`echo -e "systemctl status docker"`
system_menu
;;
2)
`echo -e "getenforce"`
system_menu
;;
3)
`echo -e "systemctl status firewalld"`
system_menu
;;
x|X)
echo -e "\033[32m---------傳回上一級目錄------->\033[0m"
menu
;;
*)
echo -e "請輸入正确編号"
system_menu
esac
}
function server_menu()
{
cat<<EOF
------------------------
********服務管理********
------------------------
1)開啟服務
2)停止服務
3)更新配置服務
X)傳回上一級目錄
------------------------
EOF
read -p "請輸入編号:" num3
case $num3 in
1)
op_menu
;;
2)
op_menu1
;;
3)
op_menu2
;;
x|X)
echo -e "\033[32m-- -----傳回上一級目錄---------> \033[0m"
menu
;;
*)
echo -e "請輸入正确編号"
system_menu
esac
}
function op_menu()
{
cat<<EOF
------------------------
1)開啟docker服務
2)開啟selinux服務
3)開啟firewall服務
X)傳回上一級目錄
------------------------
EOF
read -p "請輸入編号:" num4
case $num4 in
1)
`echo -e "systemctl start docker"`
op_menu
;;
2)
echo "注意此操作為臨時開啟,重新開機失效"
setenforce 1
op_menu
;;
3)
`echo -e "systemctl start firewalld"`
op_menu
;;
x|X)
echo -e "\033[32m--------傳回上一級目錄------->\033[0m"
server_menu
;;
*)
echo -e "請輸入正确編号"
op_menu
esac
}
function op_menu1()
{
cat<<EOF
------------------------
1)停止docker服務
2)臨時關閉selinux
3)停止firewall服務
X)傳回上一級目錄
------------------------
EOF
read -p "請輸入編号:" num5
case $num5 in
1)
`echo -e "systemctl stop docker"`
op_menu1
;;
2)
echo "注意此操作為臨時關閉,重新開機失效"
`echo -e "setenforce 0"`
op_menu1
;;
3)
`echo -e "systemctl stop firewalld"`
op_menu1
;;
x|X)
echo -e "\033[32m >>>傳回上一級目錄---> \033[0m"
server_menu
;;
*)
echo -e "請輸入正确編号"
op_menu1
esac
}
function op_menu2()
{
cat<<EOF
------------------------
1)更改yum源
2)配置docker加速
3)更新python到3
4) 更新python3後配置
X)傳回上一級目錄
------------------------
EOF
read -p "請輸入編号:" num6
case $num6 in
1)
yum install wget -y #先安裝wget指令
echo "------------------------安裝wget指令------------------------"
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
echo 備份完畢
releasetmp=`cat /etc/redhat-release | awk '{match($0,"release ")
print substr($0,RSTART+RLENGTH)}' | awk -F '.' '{print $1}'`
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-$releasetmp.repo
if [[ $? -eq 0 ]];then
echo -e "\033[32m# yum 源已成功更新為 aliyun_repo #\033[0m";
sleep 3;
else
echo -e "\033[31m# yum 源未成功更新為 aliyun_repo #\n3s 後退出...\033[0m";
exit;
fi
yum clean all && yum makecache && yum -y update
echo "------------------------更新完畢------------------------"
op_menu2
;;
2)
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://0khgh4v2.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload && sudo systemctl restart docker
echo "------------------------Docker加速配置完畢------------------------"
op_menu2
;;
3)
yum install libffi-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make -y && wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz -O $PWD/Python-3.7.0.tgz && tar -zxvf Python-3.7.0.tgz
if [! -d "/usr/local/python3"];then
mkdir /usr/local/python3 && cd $PWD/Python-3.7.0 && ./configure --prefix=/usr/local/python3
make && make install
elif [! -d "$PWD/Python-3.7.0.tgz"];then
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz -O $PWD/Python-3.7.0.tgz
else
cd $PWD/Python-3.7.0 && ./configure --prefix=/usr/local/python3
make && make install
fi
op_menu3
;;
4)
echo -e "\033[32m >>>進入目錄---> \033[0m"
op_menu3
;;
x|X)
echo -e "\033[32m >>>傳回上一級目錄---> \033[0m"
server_menu
;;
*)
echo -e "請輸入正确編号"
op_menu2
esac
}
function op_menu3()
{
cat<<EOF
------------------------
1)配置Python,pip預設
2)配置yum
3)配置防火牆
X)傳回上一級目錄
------------------------
EOF
read -p "請輸入編号:" num7
case $num7 in
1)
python2_path=`ls -al /usr/bin | grep -w "python -> python2" | awk '{print $9,$10,$11}' | wc -l`
#python_path=`ls -l /usr/bin/python* | grep -w "python -> python2" | awk '{print $9}'`
if [ x"$python2_path" != x"0" ];then
echo -e "\033[32m <---------------未修改,現在開始修改預設python,pip--------------> \033[0m"
mv /usr/bin/python /usr/bin/python.bak && rm -rf /usr/bin/python && rm -rf /usr/bin/pip && ln -s /usr/local/python3/bin/python3 /usr/bin/python && ln -s /usr/local/python3/bin/pip3 /usr/bin/pip
echo -e "\033[32m <---------------已更改結束--------------> \033[0m"
else
echo -e "\033[32m <---------------已經修改無需配置--------------> \033[0m"
fi
op_menu3
;;
2)
yum_path=`cat /usr/bin/yum | grep -w "/usr/bin/python" | wc -l`
yum_path1=`cat /usr/libexec/urlgrabber-ext-down | grep -w "/usr/bin/python" | wc -l`
if [ x"$yum_path" != x"0" ]
then
echo -e "\033[32m <---------------修改第一步--------------> \033[0m"
sed -i "1c #!/usr/bin/python2" /usr/bin/yum
echo -e "\033[32m <---------------第一步已更改結束--------------> \033[0m"
else
echo -e "\033[32m <---------------第一步已改動--------------> \033[0m"
fi
if [ x"$yum_path1" != x"0" ]
then
echo -e "\033[32m <---------------修改第二步--------------> \033[0m"
sed -i '1c #!/usr/bin/python2' /usr/libexec/urlgrabber-ext-down
echo -e "\033[32m <---------------第二步已更改結束--------------> \033[0m"
else
echo "------------------------第二步已改動------------------------"
fi
op_menu3
;;
3)
firewall_path=`cat /usr/sbin/firewalld | grep -w "/usr/bin/python" | wc -l`
if [ x"$firewall_path" != x"0" ];then
echo -e "\033[32m <---------------未修改,現在開始修改預設firewall--------------> \033[0m"
sed -i "1c #!/usr/bin/python2" /usr/sbin/firewalld
echo -e "\033[32m <---------------已更改結束--------------> \033[0m"
else
echo -e "\033[32m <---------------已經修改無需配置--------------> \033[0m"
fi
op_menu3
;;
x|X)
echo -e "\033[32m >>>傳回上一級目錄---> \033[0m"
server_menu
;;
*)
echo -e "請輸入正确編号"
op_menu3
esac
}
menu