一键部署脚本

shell 脚本:

常用命令

wget,tar,zip,
cd,ls,rm,cp,mkdir
echo,sed,ps,netstat
grep,awk,,wc,head,tail,exit

流程和注意事项

1. 参数的输入

明确方法或者模块的入参,一般入参是用户需要自己填写的参数。
例如:

$./install.sh -P /data/root/test"

用户需要执行行脚本install.sh,入餐分别是-P/data/root/test

2. 用法检查

检测用户的入参数,提示用户怎么用,比如说 ./install.sh -P /data/root/test
脚本说明:

if [ $# -lt 2 ]; then
    echo "Usage:"
    echo "    ./install.sh -P /data/root/test"
    exit 1
fi
3. 读取配置文件,获取参数

读取配置文件,解析配置文件的参数,检查配置是否合理
假设使用的配置是test.ini

$ cat test.ini
[mysql]
ip=127.0.0.1
port=3306
  • 读取配置文件和参数
value=$(crudini --get $file $section $param)
mysql_ip=$($value "mysql" "ip")

通过上面可以获取mysql_ip

  • 检查配置
function checkIp(){
    if [[ $ip =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
      exit 0
    else
      echo "fail"
      exit 1
    fi
}

function checkPort(){
    local port="$1"
    local -i port_num=$(to_int "${port}" 2>/dev/null)

    if (( $port_num < 1 || $port_num > 65535 )) ; then
        echo "*** ${port} is not a valid port" 1>&2
        exit 1
    fi
}
4. 拼接参数和安装模块
  • 如果有不同模块安装,用户需要进行并且参数,并安装其他的模块。
5. 编写启动脚本、停止脚本
  • 启动服务脚本
  • 停止服务脚本
  • 监控脚本
6. 编写监控脚本

通过crontab,进行服务的拉起。当停止脚本时,需要将crontab对应的job,进行移除。

7. 检查服务脚本

编写curl脚本,查看服务是否正常,以及检查重要的接口是否正常运行。

8. 其他
  • 统一处理控制台输出

更多


Cristic
327 声望23 粉丝

Hi~