@@ -40,15 +40,15 @@ qrcode() {
4040}
4141
4242command_exists () {
43- command -v " $1 " 2>&1
43+ command -v " $1 " 2>&1
4444}
4545
4646space_left () {
4747 dir=" $1 "
4848 while [ ! -d " $dir " ]; do
49- dir=` dirname " $dir " ` ;
49+ dir=$( dirname " $dir " )
5050 done
51- echo ` df -h " $dir " --output=' avail' | tail -n 1`
51+ echo $( df -h " $dir " --output=' avail' | tail -n 1)
5252}
5353
5454confirm () {
@@ -58,9 +58,9 @@ confirm() {
5858 [[ " $opt " == $' \n ' ]] || echo
5959
6060 case " $opt " in
61- ' y' | ' Y' ) return 0;;
62- ' n' | ' N' ) return 1;;
63- * ) confirm " $1 " ;;
61+ ' y' | ' Y' ) return 0 ;;
62+ ' n' | ' N' ) return 1 ;;
63+ * ) confirm " $1 " ;;
6464 esac
6565}
6666
@@ -86,13 +86,13 @@ onexit() {
8686
8787# CPU ssse3 指令集检查
8888support_ssse3=1
89- lscpu | grep ssse3 > /dev/null 2>&1
89+ lscpu | grep ssse3 > /dev/null 2>&1
9090if [ $? -ne " 0" ]; then
9191 echo " not found info in lscpu"
9292 support_ssse3=0
9393fi
9494
95- cat /proc/cpuinfo | grep ssse3 > /dev/null 2>&1
95+ cat /proc/cpuinfo | grep ssse3 > /dev/null 2>&1
9696if [ $support_ssse3 -eq " 0" -a $? -ne " 0" ]; then
9797 abort " 雷池需要运行在支持 ssse3 指令集的 CPU 上,虚拟机请自行配置开启 CPU ssse3 指令集支持"
9898fi
@@ -114,7 +114,7 @@ if [ "$EUID" -ne "0" ]; then
114114fi
115115info " 脚本调用方式确认正常"
116116
117- if [ -z ` command_exists docker` ]; then
117+ if [ -z $( command_exists docker) ]; then
118118 warning " 缺少 Docker 环境"
119119 if confirm " 是否需要自动安装 Docker" ; then
120120 curl -sSLk https://get.docker.com/ | bash
@@ -126,9 +126,9 @@ if [ -z `command_exists docker` ]; then
126126 abort " 中止安装"
127127 fi
128128fi
129- info " 发现 Docker 环境: '` command -v docker` '"
129+ info " 发现 Docker 环境: '$( command -v docker) '"
130130
131- docker version > /dev/null 2>&1
131+ docker version > /dev/null 2>&1
132132if [ $? -ne " 0" ]; then
133133 abort " Docker 服务工作异常"
134134fi
@@ -140,7 +140,7 @@ if $compose_command version; then
140140else
141141 warning " 未发现 Docker Compose Plugin"
142142 compose_command=" docker-compose"
143- if [ -z ` command_exists " docker-compose" ` ]; then
143+ if [ -z $( command_exists " docker-compose" ) ]; then
144144 warning " 未发现 docker-compose 组件"
145145 if confirm " 是否需要自动安装 Docker Compose Plugin" ; then
146146 curl -sSLk https://get.docker.com/ | bash
@@ -153,18 +153,18 @@ else
153153 abort " 中止安装"
154154 fi
155155 else
156- info " 发现 docker-compose 组件: '` command -v docker-compose` '"
156+ info " 发现 docker-compose 组件: '$( command -v docker-compose) '"
157157 fi
158158fi
159159
160- container_id=` docker ps --filter ancestor=chaitin/safeline-mgt-api --format ' {{.ID}}' `
161- mount_path=` docker inspect --format ' {{range .Mounts}}{{if eq .Destination "/logs"}}{{.Source}}{{end}}{{end}}' $container_id `
162- safeline_path=` dirname $mount_path `
160+ container_id=$( docker ps --filter ancestor=chaitin/safeline-mgt-api --format ' {{.ID}}' )
161+ mount_path=$( docker inspect --format ' {{range .Mounts}}{{if eq .Destination "/logs"}}{{.Source}}{{end}}{{end}}' $container_id )
162+ safeline_path=$( dirname $mount_path )
163163
164164while [ -z " $safeline_path " ]; do
165- echo -e -n " \033[34m[SafeLine] 未发现正在运行的雷池,请输入雷池安装路径 (留空则为 '` pwd` '): \033[0m"
165+ echo -e -n " \033[34m[SafeLine] 未发现正在运行的雷池,请输入雷池安装路径 (留空则为 '$( pwd) '): \033[0m"
166166 read input_path
167- [[ -z " $input_path " ]] && input_path=` pwd`
167+ [[ -z " $input_path " ]] && input_path=$( pwd)
168168
169169 if [[ ! $input_path == /* ]]; then
170170 warning " '$input_path ' 不是合法的绝对路径"
@@ -176,12 +176,12 @@ done
176176
177177cd " $safeline_path "
178178
179- grep COLLIE .env > /dev/null 2>&1
179+ grep COLLIE .env > /dev/null 2>&1
180180if [ $? -eq " 0" ]; then
181181 abort " 检测到你的环境通过牧云主机助手安装,请使用牧云主机助手-应用市场进行升级."
182182fi
183183
184- compose_name=` ls docker-compose.yaml compose.yaml 2> /dev/null`
184+ compose_name=$( ls docker-compose.yaml compose.yaml 2> /dev/null)
185185compose_path=$safeline_path /$compose_name
186186
187187if [ -f " $compose_path " ]; then
190190 abort " 没有发现位于 $safeline_path 的雷池环境"
191191fi
192192
193-
194193mv $compose_name $compose_name .old
195194
196195curl " https://waf-ce.chaitin.cn/release/latest/compose.yaml" -sSLk -o $compose_name
@@ -201,12 +200,12 @@ info "下载 compose.yaml 脚本成功"
201200
202201sed -i " s/IMAGE_TAG=.*/IMAGE_TAG=latest/g" " .env"
203202
204- grep " SAFELINE_DIR" " .env" > /dev/null || echo " SAFELINE_DIR=$( pwd) " >> " .env"
205- grep " IMAGE_TAG" " .env" > /dev/null || echo " IMAGE_TAG=latest" >> " .env"
206- grep " MGT_PORT" " .env" > /dev/null || echo " MGT_PORT=9443" >> " .env"
207- grep " POSTGRES_PASSWORD" " .env" > /dev/null || echo " POSTGRES_PASSWORD=$( LC_ALL=C tr -dc A-Za-z0-9 < /dev/urandom | head -c 32) " >> " .env"
208- grep " REDIS_PASSWORD" " .env" > /dev/null || echo " REDIS_PASSWORD=$( LC_ALL=C tr -dc A-Za-z0-9 < /dev/urandom | head -c 32) " >> " .env"
209- grep " SUBNET_PREFIX" " .env" > /dev/null || echo " SUBNET_PREFIX=172.22.222" >> " .env"
203+ grep " SAFELINE_DIR" " .env" > /dev/null || echo " SAFELINE_DIR=$( pwd) " >> " .env"
204+ grep " IMAGE_TAG" " .env" > /dev/null || echo " IMAGE_TAG=latest" >> " .env"
205+ grep " MGT_PORT" " .env" > /dev/null || echo " MGT_PORT=9443" >> " .env"
206+ grep " POSTGRES_PASSWORD" " .env" > /dev/null || echo " POSTGRES_PASSWORD=$( LC_ALL=C tr -dc A-Za-z0-9 < /dev/urandom | head -c 32) " >> " .env"
207+ grep " REDIS_PASSWORD" " .env" > /dev/null || echo " REDIS_PASSWORD=$( LC_ALL=C tr -dc A-Za-z0-9 < /dev/urandom | head -c 32) " >> " .env"
208+ grep " SUBNET_PREFIX" " .env" > /dev/null || echo " SUBNET_PREFIX=172.22.222" >> " .env"
210209
211210info " 升级 .env 脚本成功"
212211
@@ -220,6 +219,9 @@ info "下载新版本 Docker 镜像成功"
220219
221220info " 即将开始替换 Docker 容器"
222221
222+ # 升级到 3.14.0 版本时,移除了 safeline-redis 容器,需要删除容器,否则无法启动新 compose 网络
223+ docker rm -f safeline-redis & > /dev/null
224+
223225$compose_command down && $compose_command up -d
224226if [ $? -ne " 0" ]; then
225227 abort " 替换 Docker 容器失败"
@@ -230,4 +232,3 @@ qrcode
230232
231233warning " 雷池 WAF 社区版安装成功, 请访问以下地址访问控制台"
232234warning " https://0.0.0.0:9443/"
233-
0 commit comments