linux 常用脚本样例-自定义启停应用脚本

shell脚本书写样例学习

以下脚本样例包含知识点:

  1. 函数封装
  2. 模仿系统自带启停脚本 ,引入日志美化
  3. if else多条件判断;test判断和中括号判断表达式
  4. usage 使用说明
  5. c语言风格的main函数入口
  6. 反引号 ``执行shell命令
  7. netstat ,grep , wc 命令管道符方式判断应用是否启停

文件路径/etc/init.d/my_rsync.sh
脚本作用:管理应用的启停

#!/bin/bash

# 结果的美化日志
###############
lsb_functions="/lib/lsb/init-functions"
if test -f $lsb_functions ; then
  . $lsb_functions
else
  # Include non-LSB RedHat init functions to make systemctl redirect work
  init_functions="/etc/init.d/functions"
  if test -f $init_functions ; then
    . $init_functions
  fi
  log_success_msg()
  {
      echo " SUCCESS!  $@"
  }
  log_failure_msg()
  {
      echo " ERROR! $@"
  }
fi  
####################

# 开发rsync脚本
function usage(){
    echo "Usage: $0 {start|stop|restart}"
    exit 1
}


# 开发start功能
function start(){
    /usr/bin/rsync --daemon
    sleep 1
    if [ `netstat -tunlp|grep rsync|wc -l` -ge "1" ]
      then
        log_success_msg "rsyncd is started!"
    else
        log_failure_msg "rsync isn't started!"
    fi    
}

function stop(){
    killall rsync &>/dev/null
    sleep
    if [ `netstat -tunlp|grep rsync|wc -l` -eq 0 ]
      then
        log_success_msg "rsyncd is stopped!"
    else 
      log_failure_msg "rsyncd isn't stopped!"
    fi
}

function restart(){
    echo ""
}

# 开发c语言风格的脚本,更专业,更美观,更容易维护
function main(){
    if [ "$#" -ne 1 ]
      then
         usage
    fi

    if [ "$1" = "start" ]
       then
          start
    elif [ "$1" = "stop" ]
        then
          stop    
    elif [ "$1" = "restart" ]
        then
            stop
            sleep 1
            start
    else
      usage
    fi
}

# 调用程序入口函数
main $*

运行示例

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值