多级菜单系统安装维护shell脚本实现企业级案例

演示效果:

1、一级菜单

2、二级菜单

3、执行操作

脚本参考:

#!/bin/bash
#author lic(oldboy linux student)
#date 1304
DISK_NO="/dev/sda1"
NGINX_DIR="/usr/local/tdoa/nginx/sbin/nginx"
MYSQL_DIR="/usr/local/tdoa/mysql/bin/mysqld_safe"
SERVER1="WEB"
SERVER2="MYSQL"
SERVER1_START="/usr/local/tdoa/nginx/sbin/nginx"
SERVER1_STOP="kill -QUIT `cat /usr/local/tdoa/logs/nginx/nginx.pid`"
SERVER1_RESTART="kill -HUP `cat /usr/local/tdoa/logs/nginx/nginx.pid`"
SERVER2_START="/etc/init.d/mysql start"
SERVER2_STOP="/etc/init.d/mysql stop"
SERVER2_RESTART="/etc/init.d/mysql restart"
#date
DATE=`date +"%y-%m-%d %H:%M:%S"`
#ip
IPADDR=`ifconfig eth0|grep ‘inet addr‘|sed ‘s/^.*addr://g‘ |sed ‘s/Bcast:.*$//g‘`
#hostname
HOSTNAME=`hostname -s`
#user
USER=`whoami`
#disk_check
DISK_SDA=`df -h | grep $DISK_NO | awk ‘{print $5}‘`
#cpu_average_check
cpu_uptime=`cat /proc/loadavg | cut -c1-14`
#process_check
function process_check() {
for dir in $NGINX_DIR $MYSQL_DIR
do
process_count=$(ps -ef | grep "$dir" | grep -v grep | wc -l)
for service in nginx mysql 
do
echo "$dir" |grep -q "$service"
if [ $? -eq 0 ]
then
if [ $process_count -eq 0 ]
then
echo "$service.......................[NOT RUN]"
else
echo "$service.......................[RUNNING]"
continue
fi
fi
done
done
}
declare flag=0
clear
while [ "$flag" -eq 0 ]
do
echo "========================================"
process_check
echo "========================================"
cat << EOF
|-----------System Infomation-----------
| DATE       :$DATE
| HOSTNAME   :$HOSTNAME
| USER       :$USER
| IP         :$IPADDR
| DISK_USED  :$DISK_SDA
| CPU_AVERAGE:$cpu_uptime
----------------------------------------
|****Please Enter Your Choice:[0-5]****|
----------------------------------------
(1) Configure $SERVER1 Service
(2) Configure $SERVER2 Service
(3) Configure NETWORKE Service
(4) Change Passwd
(5) Logs
(0) Quit
EOF
read -p "Please enter your choice[0-5]: " input
case $input in
#web service
1)
clear
while [ "$flag" -eq 0 ]
do
cat << EOF
----------------------------------------
|****Please Enter Your Choice:[0-3]****|
----------------------------------------
(1) Start $SERVER1 Service
(2) Stop $SERVER1 Service
(3) ReStart $SERVER1 Service
(0) Back
EOF
 read -p "Please enter your choice[0-3]: " input1
 case $input1 in 
 1)
  echo -e "\n>>>>>>>>>>>$DATE Start $SERVER1">>/log.txt
  $SERVER1_START 2>>/log.txt
  if [ $? == 0 ];then
   echo "Start $SERVER1......................................................[OK]"
  else 
   echo "Start $SERVER1......................................................[FAILED]"
  fi
  sleep 5
  clear
  ;;
 2)  
  echo -e "\n>>>>>>>>>>>$DATE Stop $SERVER1">>/log.txt
  $SERVER1_STOP 2>>/log.txt
  if [ $? == 0 ];then
   echo "Stop $SERVER1.......................................................[OK]"
  else 
   echo "Stop $SERVER1.......................................................[FAILED]"
  fi
  sleep 5
  clear
  ;;
 3) 
  echo -e "\n>>>>>>>>>>>$DATE ReStart $SERVER1">>/log.txt
  /usr/local/tdoa/php/sbin/php-fpm restart 2>>/log.txt
  $SERVER1_RESTART 2>>/log.txt
  if [ $? == 0 ];then
   echo "Restart $SERVER1....................................................[OK]"
  else 
   echo "Restart $SERVER1....................................................[FAILED]"
  fi
  sleep 5
  clear
  ;;
 0) 
 clear 
 break
 ;;
 *) echo "----------------------------------"
    echo "|          Warning!!!            |"
    echo "|   Please Enter Right Choice!   |"
    echo "----------------------------------"
 for i in `seq -w 10 -1 1`
   do
     echo -ne "\b\b$i";
     sleep 1;
   done
 clear
 ;;
 esac
 done
;;
#mysql service
2)
clear
while [ "$flag" -eq 0 ]
do
cat << EOF
----------------------------------------
|****Please Enter Your Choice:[0-3]****|
----------------------------------------
(1) Start $SERVER2 Service
(2) Stop $SERVER2 Service
(3) ReStart $SERVER2 Service
(0) Back
EOF
 read -p "Please enter your Choice[0-3]: " input2
 case $input2 in 
 1)
  echo -e "\n>>>>>>>>>>>$DATE Start $SERVER2">>/log.txt
  $SERVER2_START 2>>/log.txt
  if [ $? == 0 ];then
   echo "Start $SERVER2......................................................[OK]"
  else 
   echo "Start $SERVER2......................................................[FAILED]"
  fi
  sleep 5
  clear
  ;;
 2)
  echo -e "\n>>>>>>>>>>>$DATE Stop $SERVER2">>/log.txt
  $SERVER2_STOP 2>>/log.txt
  if [ $? == 0 ];then
   echo "Stop $SERVER2.......................................................[OK]"
  else 
   echo "Stop $SERVER2.......................................................[FAILED]"
  fi
  sleep 5
  clear
  ;;
 3) 
  echo -e "\n>>>>>>>>>>>$DATE ReStart $SERVER2">>/log.txt
  $SERVER2_RESTART 2>>/log.txt
  if [ $? == 0 ];then
   echo "Restart $SERVER2....................................................[OK]"
  else 
   echo "Restart $SERVER2....................................................[FAILED]"
  fi
  sleep 5
  clear
  ;;
 0) 
 clear 
 break
 ;;
 *) echo "----------------------------------"
    echo "|          Warning!!!            |"
    echo "|   Please Enter Right Choice!   |"
    echo "----------------------------------"
 for i in `seq -w 10 -1 1`
   do
     echo -ne "\b\b$i";
     sleep 1;
   done
 clear
 ;;
 esac
 done
;;
#网络服务
3)
clear
while [ "$flag" -eq 0 ]
do
cat << EOF
----------------------------------------
|****Please Enter Your Choice:[0-3]****|
----------------------------------------
(1) ReStart NETWORK Service
(2) Configure NETWORK Service
(0) Back
EOF
 read -p "Please enter your Choice[0-3]: " input3
 case $input3 in
 1)
   echo -e "\n>>>>>>>>>>>$DATE ReStart Network">>/log.txt
  /etc/init.d/network restart  2>>/log.txt
  if [ $? == 0 ];then
   echo "Restart Network.....................................................[OK]"
  else 
   echo "Restart Network.....................................................[FAILED]"
  fi
  sleep 5
  clear
  ;;
 2)  
    clear
  setup
  clear
  ;;
 0) 
 clear 
 break
 ;;
 *) echo "----------------------------------"
    echo "|          Warning!!!            |"
    echo "|   Please Enter Right Choice!   |"
    echo "----------------------------------"
 for i in `seq -w 10 -1 1`
   do
     echo -ne "\b\b$i";
     sleep 1;
   done
 clear
 ;;
 esac
 done
;;
4)
clear
while [ "$flag" -eq 0 ]
do
cat << EOF
----------------------------------------
|****Please Enter Your Choice:[0-3]****|
----------------------------------------
(1) Change ROOT Passwd
(2) Change Samba Passwd
(0) Back
EOF
 read -p "Please enter your Choice[0-3]: " input5
 case $input5 in
 1)
  echo -e "\n>>>>>>>>>>>$DATE Change System Administertor Root Passwd\n">>/log.txt
  passwd root 2>>/log.txt
  if [ $? == 0 ];then
   echo "Change ROOT Passwd.....................................................[OK]"
  else 
   echo "Change ROOT Passwd.....................................................[FAILED]"
  fi
  sleep 5
  clear
  ;;
 2) 
  echo -e "\n>>>>>>>>>>>$DATE Change Samba Passwd">>/log.txt
  smbpasswd -a tdoa 2>>/log.txt
  if [ $? == 0 ];then
   echo "Change Samba Passwd.....................................................[OK]"
  else 
   echo "Change Samba Passwd.....................................................[FAILED]"
  fi
  sleep 5
  clear
  ;;
 0) 
 clear 
 break
 ;;
 *) echo "----------------------------------"
    echo "|          Warning!!!            |"
    echo "|   Please Enter Right Choice!   |"
    echo "----------------------------------"
 sleep 8
 clear
 ;;
esac
done
;;
5)
clear
echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
echo "|"
less /log.txt
echo "|"
echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
;;
0)
clear
exit 0
;;
*)  echo "----------------------------------"
 echo "|          Warning!!!            |"
 echo "|   Please Enter Right Choice!   |"
 echo "----------------------------------"
 for i in `seq -w 10 -1 1`
   do
     echo -ne "\b\b$i";
     sleep 1;
   done
 clear
;;
esac
done
时间: 2024-10-25 20:50:21

多级菜单系统安装维护shell脚本实现企业级案例的相关文章

单台主机一键编译部署LAMP+wordpress+discuz系统的shell脚本

单台主机一键编译部署LAMP+wordpress+discuz系统的shell脚本 ? 说明: 1.shell脚本与应用程序包在同一个目录中: 2.虚拟机尽量加大CPU核数,以提高编译速度: 3.根据需要修改相应的变量,主要是安装目录.用户名.密码: 4.Mariadb的grant授权部分,需要先手动修改授权范围(@后面的内容)和密码: 5.httpd与php采用sock通讯. ? 完整的shell脚本 #!/bin/bash #*********************************

Centos下初始化系统的shell脚本

根据参考网上的一些文章,总结出来一个系统初始化的shell脚本 #!/bin/bash cat << EOF +---------------------------------------------------------------------------+ | Initialize for the CentOS 6_installed. | +------------------------------------------------------------------------

Ubuntu系统编写shell脚本程序一次安装多个软件包

编写shell脚本程序一次安装多个软件,主要用于一些软件依赖环境配置. 1.shell脚本程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在这个例子中我们使用/bin/sh来执行程序. 2.当编辑好脚本后,还必须使其可执行. 使脚本可执行: chmod +x filename 3.然后,您可以通过输入: ./filename 来执行您的脚本. 如下: 下面是我安装NS3之前,安装NS3依赖的多个软件包: 1.在vi中编

Linux系统编写shell脚本批量创建和删除用户

一.编写shell脚本批量添加用户 实现方法:判断用户是否存在,存在则返回错误提示,同时判断用户文件是否存在,不存在则退出 1.创建添加用户脚本 [[email protected] ~]# vim useradd.sh #!/bin/bashif [ $# -eq 0 ];then        echo "你没有输入任何文件!"        exit 1fi if [ ! -f $1 ];then        echo "输入有误!"        exit

Linux常用的系统监控shell脚本

http://www.linuxqd.com下面是我常用的几个Linux系统监控的脚本,大家可以根据自己的情况在进行修改,希望能给大家一点帮助.1.查看主机网卡流量 #!/bin/bash #network #Mike.Xu while : ; do time=’date +%m”-”%d” “%k”:”%M’ day=’date +%m”-”%d’ rx_before=’ifconfig eth0|sed -n “8″p|awk ‘{print $2}’|cut -c7-’ tx_before

Shell脚本实例——商场购物案例

Shell脚本基础循环.判断语句练习实例 商场购物车案例 #! /bin/bash xie=200 ku=150 yi=100 huan=50 chi=120 num=0 for ((i=1;i<=5;i++)) do echo 是否进入第"$i"家店? read -p "输入(yes & no)" shu while [ $shu = "yes" ] do echo 1.鞋子 ¥"$xie" echo 2.裤子

shell脚本实现企业级简易跳板机案例

跳板机用途只做ssh中转,为严格控制跳板机数据进出.命令管理等,特对跳板机入口操作进行限制管理.该脚本包含两种界面风格,详见下面说明 . 功能说明: * 屏蔽用户对跳板机系统进行任何未授权操作操作 * 查询用户已授权主机,具备权限用户方可连接后台服务器 * 授权命令集合(密钥生成.上传.copy,密码更改等),可根据实际需求自定义 * 此脚本依赖于LDAP用户管理,如无LDAP服务,可自行定义用户和主机组对应关系即可 界面一:用户授权登陆主机数量不超过20台 通过选择左侧列表序号登陆右侧主机 选

Linux系统巡检shell脚本

#!/bin/bash #主机信息每日巡检   IPADDR=$(ifconfig eth0|grep 'inet addr'|awk -F '[ :]' '{print $13}') #环境变量PATH没设好,在cron里执行时有很多命令会找不到 export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin source /etc/profile   [ $(id -u) -gt 0 ] &

常用的监测系统状态shell脚本

#!/bin/bash ############################### #     系统状况分析脚本        # #                             # #用途:对系统CPU使用率.内存.# #网络连接.磁盘空间.系统进程 # #交易数量以及交易日志进行分析 # #适用操作系统:Linux          # #版本:1.0                    # #                             # #########