#!/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