variableMessageBoard_build_.../upgrade.sh

176 lines
5.5 KiB
Bash

#!/bin/bash
workdir=$(
cd $(dirname $0)
pwd
)
logout="/usr/local/program/java/logs/upgrade.log"
# lib 离线升级安装包目录
install_lib_path="${workdir}/upgrade/lib"
# shell 脚本文件路径
source_shell_path="${workdir}/upgrade/shell"
target_shell_path="/usr/local/program/java/shell"
# 备份文件路径
upgrade_backup_directory="/usr/local/program/java/upgrade_backup_directory/$(date +%Y-%m-%d-%H-%M-%S)"
# Java升级文件
upgrade_java_file="${workdir}/upgrade/VariableMessageBoard.jar"
# 页面升级文件
upgrade_dist_file="${workdir}/upgrade/dist"
# nginx升级文件
upgrade_nginx_file="${workdir}/upgrade/nginx.conf"
# 数据库升级文件
upgrade_sql_file="${workdir}/upgrade/variable_message_board.sql"
# 版本说明升级文件
upgrade_version_file="${workdir}/upgrade/version"
# oem 信息文件
upgrade_oem_file="${workdir}/upgrade/oem.json"
# 服务器nginx可执行文件
nginx_exec="/usr/local/nginx/sbin/nginx"
# 服务器nginx配置文件
nginx_system_conf="/usr/local/nginx/conf/nginx.conf"
# 服务器mysql备份可执行文件
mysql_backup_exec="/usr/bin/mysqldump"
# 服务器mysql可执行文件
mysql_exec="/usr/bin/mysql"
# 服务器Java文件
system_java_file="/usr/local/program/java/VariableMessageBoard.jar"
# 服务器页面文件
system_dist_file="/usr/local/program/dist/"
# 服务器版本说明文件
system_version_file="/usr/local/program/java/version/version"
# 服务器 oem 信息文件
system_oem_info_file="/usr/local/program/java/oem.json"
# 创建备份目录
upgrade_backup_start() {
echo "升级备份开始>>" >>${logout}
mkdir -p ${upgrade_backup_directory}
}
# 进行Java升级替换
upgrade_java_start() {
echo "升级Java启动>>" >>${logout}
if [ ! -e "${upgrade_java_file}" ]; then
echo "java jar包不存在>>" >>${logout}
return
fi
# 备份服务器Java文件
mv ${system_java_file} ${upgrade_backup_directory}
# 替换升级包中的Java文件
mv ${upgrade_java_file} ${system_java_file}
}
# 进行页面升级替换
upgrade_dist_start() {
echo "升级 dist 开始>>" >>${logout}
if [ ! -e "${upgrade_dist_file}" ]; then
echo "dist 文件不存在>>" >>${logout}
return
fi
# 备份服务器页面文件
mv ${system_dist_file} ${upgrade_backup_directory}
# 替换升级包中的页面文件
mv ${upgrade_dist_file} ${system_dist_file}
}
# 进行版本号更新
upgrade_version_start() {
echo "升级版本开始>>" >>${logout}
if [ ! -e "${upgrade_version_file}" ]; then
echo "升级版本文件不存在" >>${logout}
return
fi
# 备份服务器版本说明文件
mv ${system_version_file} ${upgrade_backup_directory}
# 替换升级包中的版本说明文件
mv ${upgrade_version_file} ${system_version_file}
}
# 进行 oem 信息更新
upgrade_oem_start() {
echo "升级 OEM 信息开始>>" >>${logout}
if [ ! -e "${upgrade_oem_file}" ]; then
echo "OEM 信息文件 不存在" >>${logout}
return
fi
# 备份服务器 oem 说明文件
mv ${system_oem_info_file} ${upgrade_backup_directory}
# 替换升级包中的oem文件
mv ${upgrade_oem_file} ${system_oem_info_file}
}
# 进行离线包的安装
install_lib() {
echo " lib 安装开始 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" >>${logout}
if [ ! -d "${install_lib_path}" ]; then
echo "lib 文件夹不存在" >>${logout}
return
fi
dpkg -i ${install_lib_path}/*.deb
echo " 安装结束 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" >>${logout}
}
# shell 进行 shell 脚本的转移
upgrade_shell_start() {
echo " shell 脚本安装开始 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" >>${logout}
if [ ! -d "$source_shell_path" ]; then
echo "shell 脚本文件夹 不存在" >>${logout}
return
fi
# 检查目标目录是否存在,如果不存在,则创建
if [ ! -d "$target_shell_path" ]; then
mkdir -p "$target_shell_path"
fi
# 拷贝文件
cp -r "$source_shell_path"/* "$target_shell_path/"
}
# 进行数据库升级
upgrade_sql_start() {
echo "升级 SQL 开始>>" >>${logout}
if [ ! -e "${upgrade_sql_file}" ]; then
echo "SQL 文件不存在." >>${logout}
return
fi
# 备份服务器数据库文件
${mysql_backup_exec} -u root -p1qaz@WSX --databases variable_message_board >${upgrade_backup_directory}/variable_message_board.sql
# 执行升级包中的数据库文件
${mysql_exec} -u root -p1qaz@WSX variable_message_board <${upgrade_sql_file}
}
# 进行nginx升级并重新加载nginx配置
upgrade_nginx_start() {
echo "升级nginx启动>>" >>${logout}
if [ ! -e "${upgrade_nginx_file}" ]; then
echo "nginx 配置文件不存在" >>${logout}
return
fi
# 备份服务器中的nginx配置文件
mv ${nginx_system_conf} ${upgrade_backup_directory}
# 替换升级包中的nginx配置文件
mv ${upgrade_nginx_file} ${nginx_system_conf}
# 重新加载新的nginx配置文件
${nginx_exec} -s reload -c ${nginx_system_conf}
}
# 重启服务
java_restart() {
echo "Java 重启>>" >>${logout}
if [ ! -e "${system_java_file}" ]; then
echo "Java jar包不存在" >>${logout}
return
fi
/etc/init.d/variable_message_board restart
}
# 进行备份目录创建
upgrade_backup_start
# 进行服务升级
upgrade_java_start
# 进行离线包的安装
install_lib
# shell 进行 shell 脚本的转移升级
upgrade_shell_start
# 进行页面升级
upgrade_dist_start
# 进行版本文件升级
upgrade_version_start
# 进行oem信息文件升级
upgrade_oem_start
# 进行数据库升级
upgrade_sql_start
# 进行nginx配置升级
upgrade_nginx_start
# 进行服务重启
java_restart