176 lines
5.5 KiB
Bash
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
|