#!/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

Linux实战(12):Centos装机常用脚本-进阶版的更多相关文章

  1. Linux学习之CentOS(七)---常用基本操命令1

    cd   pwd  mkdir  rmdir  ls  cp  rm  mv  cat  tac  nl  more   less   head   tail   touch ①目录管理:ls.cd. ...

  2. linux rhel unix centos FreeBSD 常用命令

    一:使用CentOS常用命令查看cpu more /proc/cpuinfo | grep "model name" grep "model name" /pr ...

  3. Shell 实践、常用脚本进阶

    1.备份单个文件 #!/bin/bash #备份单个文件 DATE=`/bin/date +%y%m%d` /bin/tar -czpf /backup/$1.$DATE.tar.gz /backup ...

  4. Linux [Ubuntu 12.0.1] 常用命令

    1.文件名颜色的含义1)默认色代表普通文件.例:install.log2)绿色代表可执行文件.例:rc.news3)红色代表tar包 文件. 例:vim-7.1.tar.bz24)蓝色代表目录文件. ...

  5. Linux实战教学笔记12:linux三剑客之sed命令精讲

    第十二节 linux三剑客之sed命令精讲 标签(空格分隔): Linux实战教学笔记-陈思齐 ---更多资料点我查看 1,前言 我们都知道,在Linux中一切皆文件,比如配置文件,日志文件,启动文件 ...

  6. centos 7 keepalived故障邮件通知实战(附Python邮件发送脚本)

    centos 7 keepalived故障邮件通知实战(附Python邮件发送脚本) #####################     sendmail.py  begin     ######## ...

  7. PHP 命令行模式实战之cli+mysql 模拟队列批量发送邮件(在Linux环境下PHP 异步执行脚本发送事件通知消息实际案例)

    源码地址:https://github.com/Tinywan/PHP_Experience 测试环境配置: 环境:Windows 7系统 .PHP7.0.Apache服务器 PHP框架:ThinkP ...

  8. linux常用脚本

    转载于http://justcoding.iteye.com/blog/1943504 我们在运维中,尤其是linux运维,都知道脚本的重要性,脚本会让我们的 运维事半功倍,所以学会写脚本是我们每个l ...

  9. Linux学习之CentOS(二)--初识linux的一些常用命令

    Linux学习之CentOS(二)--初识linux的一些常用命令 在VM上安装完了CentOS6.4以后,看着linux系统成功跑起来,心里小激动了一把......但是前方学习的道路还很遥远... ...

随机推荐

  1. C++动态规划

    数塔: #include <iostream> using namespace std; int a[1000][1000]; int main(){ int n; cin>> ...

  2. java实现高斯平滑

    高斯模糊也叫作高斯平滑,这里主要用来实现图像降噪.官方有入门教程:http://opencv-java-tutorials.readthedocs.io/en/latest/ 实现代码如下: pack ...

  3. 第2章 Hive安装

    第2章 Hive安装 2.1 Hive安装地址 1.Hive官网地址 http://hive.apache.org/ 2.文档查看地址 https://cwiki.apache.org/conflue ...

  4. 第二篇Scrum冲刺博客--Interesting-Corps

    第二篇Scrum冲刺博客 站立式会议 1.会议照片 2.队友完成情况 团队成员 昨日完成 今日计划 鲍鱼铭 主页页面和探测空间设计及布局实现 主页页面跳转社区功能及社区设计及布局实现 叶学涛 设计页面 ...

  5. 第7篇scrum冲刺(5.27)

    一.站立会议 1.照片 2.工作安排 成员 昨天已完成的工作 今天的工作安排 困难 陈芝敏  学习云开发,云函数调用以及数据的前后端传递  今天实现云词库搭建,随机获取并显示,对云开发有更深的认识   ...

  6. 第4篇scrum冲刺(5.24)

    一.站立会议 1.照片 2.工作安排 成员 昨天已完成的工作 今天的工作安排 困难 陈芝敏  完成云开发配置,初始化数据库:  线下模块(还剩下获取词的数据库) 倒计时模块的初加载还是有点慢  冯晓凤 ...

  7. 调试 Ingress Nginx

    由于 Ingress Nginx 是最受欢迎的 Ingress 控制器,因此接下来我们将介绍一些有关调试 ingress-nginx 的技巧. 调试 Ingress Nginx Ingress-ngi ...

  8. Istio安全-授权(实操三)

    Istio安全-授权 目录 Istio安全-授权 授权HTTP流量 为使用HTTP流量的负载配置访问控制 卸载 授权TCP流量 部署 配置TCP负载的访问控制 卸载 使用JWT进行授权 部署 使用有效 ...

  9. googleEarth

    中国航天科技集团有限公司 http://www.spacechina.com/n25/n144/n210/index.html Celestia [官网]: https://celestia.spac ...

  10. Linux下命令设置别名--alias(同实用于mac)

    最近在搞appium自动化脚本编写,过程中经常会使用 uiautomatorviewer这个工具查看UI布局和元素,但是不得不说这个单词太长了.. 如何快速使用,有三个小技巧,分别是: 1.设置好改工 ...