#!/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. 日记——递归or搜索?

    好久没发博了,今天发一篇. 这两天学校功课比较紧,编程稍微放了放做题量. 抽空学了学深搜,感谢zah同学给我讲解dfs,浅显易懂,我很快就适应了. 做了几个基础题,没有想象中那么难(菜鸡BB,因为题简 ...

  2. JAVA 下载单个文件

    public void toDownLoad(String ape505, HttpServletRequest request, HttpServletResponse response) thro ...

  3. 哲思集-转载自CSDN

    CSDN 创始人蒋涛:世界被编码之后 分享赚¥9.90订阅博主 “写代码 20 年,通过网络平台和社区,帮助中国的程序员更好成长,这是我最希望被大家记住的.”这是蒋涛接受 ZAKER 采访的开场白. ...

  4. 第6篇 Scrum 冲刺博客

    1.站立会议 照骗 进度 成员 昨日完成任务 今日计划任务 遇到的困难 钟智锋 重构游戏逻辑代码 改写部分客户端代码,制作单机版 庄诗楷 进行了相关的装饰改进 与其他部分合成完成游戏 合成遇到bug, ...

  5. Java数据结构——二叉搜索树

    定义二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值: 若 ...

  6. idea使用技巧一常用快捷键

    快捷键 功能 ctrl+x 删除行 ctrl+d 复制行 ctrl+n 查找类 ctrl+f 查找文本 ctrl+j 自动代码 ctrl+h 显示类结构图 ctrl+q 显示注释文档 ctrl+p 方 ...

  7. 3点带你快速学会Selenium工具的使用

    (一)Selenium IDE Firefox的一个插件,有助于我们理解测试框架.在附加组件里搜索下载,一般搜的结果里前几个都不是,得点那个查看更多才行,找到这个: 安装以后浏览器工具栏会有: 安装好 ...

  8. 【Android】Listview返回顶部,快速返回顶部的功能实现,详解代码。

    作者:程序员小冰,GitHub主页:https://github.com/QQ986945193 新浪微博:http://weibo.com/mcxiaobing 首先给大家看一下我们今天这个最终实现 ...

  9. oeasy 教您玩转linux010101查看内核uname

    linux([?l?n?ks]) 是什么????? 咱们这次讲点什么呢?这次咱们讲讲这个 linux([?l?n?ks]),什么是 linux([?l?n?ks])呢?这linux([?l?n?ks] ...

  10. Unity3d UGUI插件之TSTableView

    TSTableView是Tacticsoft工作室开发的一款适用于UGUI的列表(Table)插件,设计灵感来源于iOS/Mac的UITableView,提供高复用.高性能的列表,其主要特点是: 采用 ...