自动部署

停止系统–>备份现有的环境–>部署新build的文件–>修改需要修改的配置文件(如果需要)–>启动系统

大致脚本如下:

复制代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#!/bin/bash
DAY=`date +%Y-%m-%d-%H:%M:%S`
#the path for deleting the log and tmp
APP_MAIN_PATH=/data/yousystem/jboss-5.1.0.GA/server/default
#the key word for searching the process id
PID_MSG=yousystem/
#msg of the file which is running now,backup it.
APP_FILE_NAME1=yousystem.war
APP_FILE_PATH1=/data/yousystem/jboss-5.1.0.GA/server/default/deploy
#msg of the start file which is used to start the system
APP_START_FILE=app-run.sh
APP_START_PATH=/data/yousystem
#msg of the update file
BUILD_FILE_NAME1=yousystem.war
BUILD_FILE_PATH=/data/backup/autobuild/build_files_backup
#msg of the old files for backup
OLD_FILE_PATH=/data/backup/autobuild/old_files_backup
#path of the shell script log
SHELL_LOG_PATH=/data/backup/autobuild
echo '=============================adp==================================='>>$SHELL_LOG_PATH/log_build.log
mkdir -p /data/backup
mkdir -p /data/backup/autobuild
mkdir -p /data/backup/autobuild/auto-build-scripts
mkdir -p /data/backup/autobuild/build_files_backup
mkdir -p /data/backup/autobuild/old_files_backup
#关闭正在运行的系统
time_now_1=`date +%Y-%m-%d" "%H:%M:%S`
echo $time_now_1 'Begin to kill the progress.....'>>$SHELL_LOG_PATH/log_build.log
pid=`ps -ef|grep $PID_MSG|grep -v grep|awk '{print $2}'`
if [ -n "$pid" ]
then
echo 'The pid: ' $pid ' will be killed....'>>$SHELL_LOG_PATH/log_build.log
kill -9 $pid
fi
rm -rf $APP_MAIN_PATH/log/ $APP_MAIN_PATH/tmp/ $APP_MAIN_PATH/work/
time_now_2=`date +%Y-%m-%d" "%H:%M:%S`
echo $time_now_2 'End to kill the progress.....'>>$SHELL_LOG_PATH/log_build.log
#备份现有的环境,具体的备份路径和范围由个人决定
echo '*******************************************************'>>$SHELL_LOG_PATH/log_build.log
time_now_3=`date +%Y-%m-%d" "%H:%M:%S`
echo $time_now_3 'Begin to backup the files: '$APP_FILE_NAME1>>$SHELL_LOG_PATH/log_build.log
cp -r $APP_FILE_PATH1/$APP_FILE_NAME1 $OLD_FILE_PATH/$APP_FILE_NAME1-$DAY
time_now_4=`date +%Y-%m-%d" "%H:%M:%S`
echo $time_now_4 'End to backup the files.....'>>$SHELL_LOG_PATH/log_build.log
#备份完之后先删除掉现有的环境,备份哪些就删除哪些,主要是怕覆盖的时候有文件错误
echo '*******************************************************'>>$SHELL_LOG_PATH/log_build.log
time_now_5=`date +%Y-%m-%d" "%H:%M:%S`
echo $time_now_5 'Begin to delete the files: ' $APP_FILE_NAME1>>$SHELL_LOG_PATH/log_build.log
rm -rf $APP_FILE_PATH1/$APP_FILE_NAME1
time_now_6=`date +%Y-%m-%d" "%H:%M:%S`
echo $time_now_6 'End to delete the files....'>>$SHELL_LOG_PATH/log_build.log
#把最新build的文件拷贝到需要解压的目录
echo '*******************************************************'>>$SHELL_LOG_PATH/log_build.log
time_now_7=`date +%Y-%m-%d" "%H:%M:%S`
echo $time_now_7 'Begin to copy the build files: ' $BUILD_FILE_NAME1>>$SHELL_LOG_PATH/log_build.log
cp -r $BUILD_FILE_PATH/$BUILD_FILE_NAME1 $APP_FILE_PATH1
time_now_8=`date +%Y-%m-%d" "%H:%M:%S`
echo $time_now_8 'End to copy the build files.....'>>$SHELL_LOG_PATH/log_build.log
#删除环境上的缓存文件
echo '*******************************************************'>>$SHELL_LOG_PATH/log_build.log
time_now_9=`date +%Y-%m-%d" "%H:%M:%S`
echo $time_now_9 'Begin to backup the build files: ' $BUILD_FILE_NAME1>>$SHELL_LOG_PATH/log_build.log
mv -f $BUILD_FILE_PATH/$BUILD_FILE_NAME1 $BUILD_FILE_PATH/$BUILD_FILE_NAME1-$DAY
time_now_10=`date +%Y-%m-%d" "%H:%M:%S`
echo $time_now_10 'End to backup the build files.....'>>$SHELL_LOG_PATH/log_build.log
#解压新build的文件(视个人项目而定,一般war包不需要解压,但是这里我们需要去修改war包中的配置文件)
echo '*******************************************************'>>$SHELL_LOG_PATH/log_build.log
time_now_11=`date +%Y-%m-%d" "%H:%M:%S`
echo $time_now_11 'Begin to uncompress the files: ' $BUILD_FILE_NAME1>>$SHELL_LOG_PATH/log_build.log
cd $APP_FILE_PATH1
mkdir unwar
echo 'mkdir success'>>$SHELL_LOG_PATH/log_build.log
cp -r $APP_FILE_NAME1 unwar/
echo 'copy file success'>>$SHELL_LOG_PATH/log_build.log
cd unwar/
jar -xf $APP_FILE_NAME1
echo 'uncompress file success'>>$SHELL_LOG_PATH/log_build.log
rm -rf $APP_FILE_NAME1
echo 'delete the copy file success'>>$SHELL_LOG_PATH/log_build.log
cd $APP_FILE_PATH1
rm -rf $APP_FILE_NAME1
echo 'delete the update file success'>>$SHELL_LOG_PATH/log_build.log
mv unwar $APP_FILE_NAME1
echo 'change the folder name success'>>$SHELL_LOG_PATH/log_build.log
time_now_12=`date +%Y-%m-%d" "%H:%M:%S`
echo $time_now_12 'End to uncompress the files:.....'>>$SHELL_LOG_PATH/log_build.log
#重启系统
echo '*******************************************************'>>$SHELL_LOG_PATH/log_build.log
time_now_13=`date +%Y-%m-%d" "%H:%M:%S`
echo $time_now_13 'Begin to restart the system....'>>$SHELL_LOG_PATH/log_build.log
echo 'Start File is: ' $APP_START_PATH/$APP_START_FILE>>$SHELL_LOG_PATH/log_build.log
sh $APP_START_PATH/$APP_START_FILE
time_now_14=`date +%Y-%m-%d" "%H:%M:%S`
echo $time_now_14 'End to restart the system....'>>$SHELL_LOG_PATH/log_build.log

下载网页—-sudo apt install httrack

文章目录