Skip to content

Commit 1b58308

Browse files
committed
fix: redis is cursed when upgrade to 3.14.0
1 parent 9d51bc9 commit 1b58308

File tree

1 file changed

+29
-28
lines changed

1 file changed

+29
-28
lines changed

release/latest/upgrade.sh

Lines changed: 29 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -40,15 +40,15 @@ qrcode() {
4040
}
4141

4242
command_exists() {
43-
command -v "$1" 2>&1
43+
command -v "$1" 2>&1
4444
}
4545

4646
space_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

5454
confirm() {
@@ -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 指令集检查
8888
support_ssse3=1
89-
lscpu | grep ssse3 > /dev/null 2>&1
89+
lscpu | grep ssse3 >/dev/null 2>&1
9090
if [ $? -ne "0" ]; then
9191
echo "not found info in lscpu"
9292
support_ssse3=0
9393
fi
9494

95-
cat /proc/cpuinfo | grep ssse3 > /dev/null 2>&1
95+
cat /proc/cpuinfo | grep ssse3 >/dev/null 2>&1
9696
if [ $support_ssse3 -eq "0" -a $? -ne "0" ]; then
9797
abort "雷池需要运行在支持 ssse3 指令集的 CPU 上,虚拟机请自行配置开启 CPU ssse3 指令集支持"
9898
fi
@@ -114,7 +114,7 @@ if [ "$EUID" -ne "0" ]; then
114114
fi
115115
info "脚本调用方式确认正常"
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
128128
fi
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
132132
if [ $? -ne "0" ]; then
133133
abort "Docker 服务工作异常"
134134
fi
@@ -140,7 +140,7 @@ if $compose_command version; then
140140
else
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
158158
fi
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

164164
while [ -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

177177
cd "$safeline_path"
178178

179-
grep COLLIE .env > /dev/null 2>&1
179+
grep COLLIE .env >/dev/null 2>&1
180180
if [ $? -eq "0" ]; then
181181
abort "检测到你的环境通过牧云主机助手安装,请使用牧云主机助手-应用市场进行升级."
182182
fi
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)
185185
compose_path=$safeline_path/$compose_name
186186

187187
if [ -f "$compose_path" ]; then
@@ -190,7 +190,6 @@ else
190190
abort "没有发现位于 $safeline_path 的雷池环境"
191191
fi
192192

193-
194193
mv $compose_name $compose_name.old
195194

196195
curl "https://waf-ce.chaitin.cn/release/latest/compose.yaml" -sSLk -o $compose_name
@@ -201,12 +200,12 @@ info "下载 compose.yaml 脚本成功"
201200

202201
sed -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

211210
info "升级 .env 脚本成功"
212211

@@ -220,6 +219,9 @@ info "下载新版本 Docker 镜像成功"
220219

221220
info "即将开始替换 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
224226
if [ $? -ne "0" ]; then
225227
abort "替换 Docker 容器失败"
@@ -230,4 +232,3 @@ qrcode
230232

231233
warning "雷池 WAF 社区版安装成功, 请访问以下地址访问控制台"
232234
warning "https://0.0.0.0:9443/"
233-

0 commit comments

Comments
 (0)