zoukankan      html  css  js  c++  java
  • 高级脚本进阶—使用case的多功能选择性脚本

    应用场景:

      在应用脚本决解实际的运维问题时,单功能脚本有很多的不同应用环境,如不同的运行环境,不同的系统版本等,这时,就需要对脚本的功能进行选择,一个脚本实现多功能多版本系统的维护,以减少沟通成本,而减少工作与沟通的复杂度是实际的工作中很有必要的,介绍一个简单的实现小框架,使用case流分离工具进行功能分离:

    #!/bin/bash
    Title
    = oneSubtitle= twoSubtitle= threeSubtitle= fourSubtitle= fiveSubtitle= sixSubtitle= sevenSubtitle= echo cat <<EOF DATE : `date +%Y-%m-%d-%T` ========================================== $Title ========================================== **  1)$oneSubtitle ** ** 2)$twoSubtitle ** **  3)$threeSubtitle ** ** 4)$fourSubtitle ** ** 5)$fiveSubtitle ** ** 6)$sixSubtitle ** ** 7)$sevenSubtitle ** ========================================== EOF read -p "Please choose [1-7]:" num case $num in 1) function1 ;; 2) function2 ;; 3) function3 ;; 4) function4 ;; 5) function5 ;; 6) function6 ;; 7) function7 ;; *) clear ./$0 ;; esac
    #!/bin/bash
    . /etc/rc.d/init.d/functions
    
    start(){
        rsync --daemon
        if [ $? -eq 0 -a `ps -ef|grep -v grep|grep rsync|wc -l` -gt 0 ];then 
            action "Starting Rsync:" /bin/true
            sleep 1
        else
            action "Starting Rsync:" /bin/false
        sleep 1 
        fi
    }
    
    stop(){
        pkill rsync;sleep 1;pkill rsync
        if [ `ps -ef|grep -v grep|grep "rsync --daemon"|wc -l` -lt 1 ];then
            action "Stopping Rsync: " /bin/true
            sleep 1
        else
            action "Stopping Rsync:" /bin/true
            sleep 1
        fi
    }
    
    case "$1" in
        start)
            start;
            ;; 
        stop)
            stop;
            ;;
         restart|reload)
              stop;
            start;
            ;; 
        *)
            echo $"Usage: $0 {start|stop|restart|reload}"
             ;;
    esac

    如上所示,小框架进行了七种不同场景的分离。

    小结:

     而在实际的应用脚本时,需要注意的有以下几点:

    1.功能与功能之间的交叉。

    2.根据实际的情况,选择不同的方式来进行。

    3.考虑应用场景时,要考虑各种系统环境,提升代码的健壮性。

    4.对相应命令的执行结果,不要一味的输入到/dev/null下,这样会错失很多的信息。

    5.多测试,以实现功能的完备。

  • 相关阅读:
    浅谈Oracle12c 数据库、用户、CDB与PDB之间的关系
    ECLIPSE快捷键
    Oracle12cWindows安装、介绍及简单使用(图文)
    金士顿DT100 G3 PS2251-07海力士U盘量产修复成功教程
    tomcat绑定域名
    TCP慢启动、拥塞避免、快速重传、快速恢复
    理解HTTP幂等性
    TCP协议缺陷不完全记录
    Nginx模块开发入门
    一步步构建大型网站架构
  • 原文地址:https://www.cnblogs.com/xiaoyuxixi/p/11409966.html
Copyright © 2011-2022 走看看