博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
多级菜单系统安装维护shell脚本实现企业级案例
阅读量:5748 次
发布时间:2019-06-18

本文共 7569 字,大约阅读时间需要 25 分钟。

演示效果:

1、一级菜单

2、二级菜单

3、执行操作

脚本参考:

#!/bin/bash#author lic(oldboy linux student)#date 1304DISK_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"#dateDATE=`date +"%y-%m-%d %H:%M:%S"`#ipIPADDR=`ifconfig eth0|grep 'inet addr'|sed 's/^.*addr://g' |sed 's/Bcast:.*$//g'`#hostnameHOSTNAME=`hostname -s`#userUSER=`whoami`#disk_checkDISK_SDA=`df -h | grep $DISK_NO | awk '{print $5}'`#cpu_average_checkcpu_uptime=`cat /proc/loadavg | cut -c1-14`#process_checkfunction process_check() {for dir in $NGINX_DIR $MYSQL_DIRdoprocess_count=$(ps -ef | grep "$dir" | grep -v grep | wc -l)for service in nginx mysql doecho "$dir" |grep -q "$service"if [ $? -eq 0 ]thenif [ $process_count -eq 0 ]thenecho "$service.......................[NOT RUN]"elseecho "$service.......................[RUNNING]"continuefifidonedone}declare flag=0clearwhile [ "$flag" -eq 0 ]doecho "========================================"process_checkecho "========================================"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) QuitEOFread -p "Please enter your choice[0-5]: " inputcase $input in#web service1)clearwhile [ "$flag" -eq 0 ]docat << EOF----------------------------------------|****Please Enter Your Choice:[0-3]****|----------------------------------------(1) Start $SERVER1 Service(2) Stop $SERVER1 Service(3) ReStart $SERVER1 Service(0) BackEOF 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 service2)clearwhile [ "$flag" -eq 0 ]docat << EOF----------------------------------------|****Please Enter Your Choice:[0-3]****|----------------------------------------(1) Start $SERVER2 Service(2) Stop $SERVER2 Service(3) ReStart $SERVER2 Service(0) BackEOF 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)clearwhile [ "$flag" -eq 0 ]docat << EOF----------------------------------------|****Please Enter Your Choice:[0-3]****|----------------------------------------(1) ReStart NETWORK Service(2) Configure NETWORK Service(0) BackEOF 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)clearwhile [ "$flag" -eq 0 ]docat << EOF----------------------------------------|****Please Enter Your Choice:[0-3]****|----------------------------------------(1) Change ROOT Passwd(2) Change Samba Passwd(0) BackEOF 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 ;;esacdone;;5)clearecho "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"echo "|"less /log.txtecho "|"echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++";;0)clearexit 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;;esacdone

 

转载地址:http://lrqzx.baihongyu.com/

你可能感兴趣的文章
shell脚本实例
查看>>
我的友情链接
查看>>
Windows Phone 7 隔离存储空间资源管理器
查看>>
Microsoft Excel 2000/2003修复工具
查看>>
apache安装报错undefined reference ssl
查看>>
关于爱情只有一句忠告
查看>>
CentOS 7下安装部署Oracle11g图文教程
查看>>
F#初学笔记06
查看>>
实战:将企业域名解析委派给企业DNS服务器
查看>>
在Lync 2013环境部署Office Web Apps
查看>>
微软大会Ignite,你准备好了么?
查看>>
读书笔记-高标管事 低调管人
查看>>
Master带给世界的思考:是“失控”还是进化
查看>>
用户和开发者不满苹果iCloud问题多多
查看>>
java.lang.UnsatisfiedLinkError:no dll in java.library.path终极解决之道
查看>>
我的工具:文本转音频文件
查看>>
【许晓笛】从零开始运行EOS系统
查看>>
【跃迁之路】【460天】程序员高效学习方法论探索系列(实验阶段217-2018.05.11)...
查看>>
C++入门读物推荐
查看>>
TiDB 源码阅读系列文章(七)基于规则的优化
查看>>