一鍵部署指令碼
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. 其他
- 統一處理控制檯輸出