#!/bin/bash
#脚本说明 支持自动创建文件夹、解压替换文件、重命名 、启动、重启、备份包
#start只需要修改2个参数====================================
#bak_config 替换2个文件bootstrap.yml和registry.conf
#进入表单设计器路径
cd /opt/modules/support-platform/designer-service
#远程开发环境109服务器获取敷设计器的项目包
scp -r root@10.204.125.109:/opt/modules/support-platform/designer-service/designer-service-dev-1.0.0.jar /opt/modules/support-platform/designer-service
#源jar包
sourceFile=“designer-service-dev-1.0.0.jar”
#sourceFile=“designer-service-1.0.0.jar”
#目标源jar包
targetFile=“designer-service-test-1.0.0.jar”
#end============================================================================
#jar包根路径
url=
(
c
d
"
(cd "
(cd"(dirname “$0”)"; pwd)
#sourceFile jar解压的文件夹
bootInf=“BOOT-INF”
metaInf=“META-INF”
org=“org”
#是否备份文件 0 不备份 1备份
isBackup=“1”
#是否存在当天文件夹 最多保留3天备份文件夹 0默认值 判断初始化 第一个备份文件夹
mkdirIsExists=“0”
#启动提示
startMessage=“启动成功=======>”
cd KaTeX parse error: Expected 'EOF', got '#' at position 5: url #̲touch "org" mkdir $metaInf
#注意:1、if和中括号([])之间有空格;2、中括号([])与里面的内容之间必须有空格
#1.判断多个目录是否存在 if [ -d “/data_docker” -o -d “/opt/dpkg_soft” ]; then
#2.判断多个文件是否存在 if [ -f “database1.sql” -a -f “database2.sql” -a -f “database3.sql” ]; then
#备份文件start====================================================================================================
if [ ! -f
s
o
u
r
c
e
F
i
l
e
]
;
t
h
e
n
i
s
B
a
c
k
u
p
=
"
0
"
e
c
h
o
"
=
=
=
=
=
=
=
=
=
=
=
=
没
有
源
始
文
件
无
需
备
份
=
=
=
=
=
=
=
=
=
=
=
=
>
"
sourceFile ]; then isBackup="0" echo "============没有源始文件无需备份============>"
sourceFile];thenisBackup="0"echo"============没有源始文件无需备份============>"sourceFile
fi
if [ KaTeX parse error: Expected 'EOF', got '#' at position 26: …= "1" ]; then #̲保留3天的备份文件 back…url"/backup_jar"
backup1=
u
r
l
"
/
b
a
c
k
u
p
j
a
r
/
b
a
c
k
u
p
1
"
b
a
c
k
u
p
2
=
url"/backup_jar/backup1" backup2=
url"/backupjar/backup1"backup2=url"/backup_jar/backup2"
backup3=KaTeX parse error: Expected 'EOF', got '#' at position 27: …_jar/backup3" #̲当前备份文件夹 curren…backup
ymd=
(
d
a
t
e
"
+
h
m
s
=
(date "+%Y-%m-%d") hms=
(date"+hms=(date “+%H:%m:%s”)
currentBackupSourceFile=
y
m
d
′
−
′
ymd'-'
ymd′−′hms
s
o
u
r
c
e
F
i
l
e
c
u
r
r
e
n
t
B
a
c
k
u
p
T
a
r
g
e
t
F
i
l
e
=
sourceFile currentBackupTargetFile=
sourceFilecurrentBackupTargetFile=ymd’-'
h
m
s
hms
hmstargetFile
if [ ! -d
b
a
c
k
u
p
]
;
t
h
e
n
e
c
h
o
"
创
建
备
份
文
件
夹
存
在
"
backup ]; then echo "创建备份文件夹存在"
backup];thenecho"创建备份文件夹存在"backup
mkdir $backup
fi
if [ ! -d $backup1 ]; then
echo "创建备份文件夹存在"$backup1
mkdir $backup1
fi
if [ ! -d $backup2 ]; then
echo "创建备份文件夹存在"$backup2
mkdir $backup2
fi
if [ ! -d $backup3 ]; then
echo "创建备份文件夹存在"$backup3
mkdir $backup3
fi
if [ "`ls -A $backup1`" = "" ]; then
#echo $backup1"is empty========================="
currentBackup=$backup1
mkdirIsExists="1"
elif [ "`ls -A $backup2`" = "" ]; then
#echo $backup2"is empty========================="
currentBackup=$backup2
mkdirIsExists="1"
elif [ "`ls -A $backup3`" = "" ]; then
#echo $backup1"is empty========================="
currentBackup=$backup3
mkdirIsExists="1"
fi
if [ -d $backup1'/'$ymd ]; then
echo "存在文件夹"$backup1'/'$ymd
currentBackup=$backup1
mkdirIsExists="1"
fi
if [ -d $backup2'/'$ymd ]; then
echo "存在文件夹"$backup2'/'$ymd
currentBackup=$backup2
mkdirIsExists="1"
fi
if [ -d $backup3'/'$ymd ]; then
echo "存在文件夹"$backup3'/'$ymd
currentBackup=$backup3
mkdirIsExists="1"
fi
if [ $mkdirIsExists == "0" ]; then
#如果3个不为空删除备份
rm -rf $backup1
mkdir $backup1
currentBackup=$backup1
echo $backup1"如果3个不为空删除备份--"$mkdirIsExists
fi
#用于判断是否创建当天日期的文件夹 用于判断备份使用
if [ ! -d $currentBackup'/'$ymd ]; then
echo "创建文件夹"$currentBackup'/'$ymd
mkdir $currentBackup'/'$ymd
fi
echo "当前备份目录为:========================>="$currentBackup
if [ -f $sourceFile ]; then
#备份文件
cp $sourceFile $currentBackupSourceFile
cp $currentBackupSourceFile $currentBackup
rm -rf $currentBackupSourceFile
echo "备份源文件===========>" $currentBackupSourceFile
fi
if [ -f $targetFile ]; then
#备份文件
cp $targetFile $currentBackupTargetFile
cp $currentBackupTargetFile $currentBackup
rm -rf $currentBackupTargetFile
echo "备份目标文件===========>" $currentBackupTargetFile
fi
fi
#备份文件end====================================================================================================
#判断文件夹是否存在 -d start=========================
if [[ -d $bootInf ]]; then
#echo “文件夹存在” $bootInf
rm -rf $bootInf
fi
if [ -d KaTeX parse error: Expected 'EOF', got '#' at position 18: …taInf ]; then #̲echo "文件夹存在"metaInf
rm -rf $metaInf
fi
if [ -d KaTeX parse error: Expected 'EOF', got '#' at position 14: org ]; then #̲echo "文件夹存在"org
rm -rf $org
fi
#判断文件夹是否存在 -d end=========================
#判断文件是否存在 -f
if [ -f $sourceFile -a -f KaTeX parse error: Expected 'EOF', got '#' at position 21: …tFile ]; then #̲echo "文件存在"sourceFile $targetFile
#只保留一个存在
rm -rf $targetFile
fi
if [ -f KaTeX parse error: Expected 'EOF', got '#' at position 21: …eFile ]; then #̲echo "文件存在"sourceFile
#重命名
mv $sourceFile $targetFile
#解压jar
jar xf $targetFile
#删除
rm -rf ./BOOT-INF/classes/bootstrap.yml
#拷贝
cp -a ./bak_config/bootstrap.yml ./BOOT-INF/classes/
rm -rf ./BOOT-INF/classes/registry.conf
cp -a ./bak_config/registry.conf ./BOOT-INF/classes/
#增加文件到 jar 中,目录需对应
jar -uf $targetFile ./BOOT-INF/classes/bootstrap.yml
jar -uf
t
a
r
g
e
t
F
i
l
e
.
/
B
O
O
T
−
I
N
F
/
c
l
a
s
s
e
s
/
r
e
g
i
s
t
r
y
.
c
o
n
f
e
c
h
o
"
b
o
o
t
s
t
r
a
p
.
y
m
l
、
r
e
g
i
s
t
r
y
.
c
o
n
f
=
=
=
=
=
=
=
=
=
=
>
文
件
解
压
替
换
文
件
成
功
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
>
"
targetFile ./BOOT-INF/classes/registry.conf echo "bootstrap.yml、registry.conf==========>文件解压替换文件成功=================>"
targetFile./BOOT−INF/classes/registry.confecho"bootstrap.yml、registry.conf==========>文件解压替换文件成功=================>"targetFile
else
echo “源文件不存在”$sourceFile
startMessage=">重启成功=======>"
fi
#判断文件是否存在 -f
if [ -f
t
a
r
g
e
t
F
i
l
e
]
;
t
h
e
n
e
c
h
o
"
目
标
文
件
存
在
"
targetFile ]; then echo "目标文件存在"
targetFile];thenecho"目标文件存在"targetFile
kill -9 ps -ef |grep $targetFile | grep -v grep | awk '{print $2}'
nohup java -jar $targetFile &
echo
s
t
a
r
t
M
e
s
s
a
g
e
startMessage
startMessagetargetFile
else
echo “目标文件不存在”$targetFile
fi
#判断文件夹是否存在 -d start=========================
if [[ -d $bootInf ]]; then
#echo “文件夹存在” $bootInf
rm -rf $bootInf
fi
if [ -d KaTeX parse error: Expected 'EOF', got '#' at position 18: …taInf ]; then #̲echo "文件夹存在"metaInf
rm -rf $metaInf
fi
if [ -d KaTeX parse error: Expected 'EOF', got '#' at position 14: org ]; then #̲echo "文件夹存在"org
rm -rf $org
fi
#判断文件夹是否存在 -d end=========================