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.多测试,以实现功能的完备。

  • 相关阅读:
    八.正文处理命令及tar命令
    七.用户.群组及权限的深入讨论
    六.用户.群组和权限
    五.目录,文件的浏览,管理和维护
    四.linux 命令及获取帮助
    计算机的基础知识
    三.linux基本的50条命令
    二.Python的基本数据类型及常用功能
    一.编码的转换和基本的算法
    Linux开机自动挂载Windows分区
  • 原文地址:https://www.cnblogs.com/xiaoyuxixi/p/11409966.html
Copyright © 2011-2022 走看看