一键部署脚本
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. 其他
- 统一处理控制台输出
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。