提交 87b429a0 authored 作者: 陈泽健's avatar 陈泽健

feat(deploy): 新增 PowerShell脚本实现全栈更新- 包含前端和后端服务的更新流程

 -增加错误处理和日志记录
 - 优化文件传输和解压逻辑
 - 改进命令执行和备份流程
上级 848437de
......@@ -11,6 +11,8 @@
- pip install pyyaml
- pip install colorama
- pip install python-docx
- pip install tqdm
- pip install paramiko tqdm
- 若切换电脑环境后需要输入指令: 将本地库导入到外部库中。
- # 找到 site-packages 路径
......
Welcome to UOS Server 20
Upgradable packages: 1
Upgrade command line: yum upgrade
Activate the web console with: systemctl enable --now cockpit.socket
Last login: Thu Jun 5 16:14:44 2025 from 192.168.9.51
tail -f /var/www/java/api-java-meeting2.0/logs/ubains-INFO-AND-ERROR.log
Welcome to 4.19.90-2403.3.0.0270.87.uel20.x86_64
System information as of time: 2025年 06月 05日 星期四 16:47:27 CST
System load: 0.75
Processes: 407
Memory used: 68.0%
Swap used: 23.2%
Usage On: 60%
IP address: 192.168.5.218
IP address: 172.17.0.1
Users online: 1
[?2004h[root@localhost ~]# tail -f /var/www/java/api-java-meeting2.0/logs/ubains-INFO-AND-ERROR.log
[?2004l 2025-06-05 16:47:02.432 INFO : [ThirdSyncMeetCallable-第三方同步会议线程类][第三方会议同步][IP:][n03q9qwtsddfiwqqgfx7cipzt0lo2mhp][SYNC][会议室编号对比-相同才进行后面的判断-原编号n03q9qwtsddfiwqqgfx7cipzt0lo2mhp-为true]:true
2025-06-05 16:47:02.432 INFO : [ThirdSyncMeetCallable-第三方同步会议线程类][第三方会议同步][IP:][Thu Jun 05 16:46:02 CST 2025][SYNC][修改触发-更新会议的更新时间不同]:"2025-06-05 16:46:02"
2025-06-05 16:47:02.432 INFO
: [ThirdSyncMeetCallable-第三方同步会议线程类][第三方会议同步][IP:][2025-1748915224214][SYNC][被修改的会议名称为]:"结束正在召开的周期会议test1"
2025-06-05 16:47:02.432 INFO : [ThirdSyncServiceImpl第三方页面同步服务实现类][第三方会议同步][IP:][][SYNC][数据库操作-开始]:""
2025-06-05 16:47:02.433 INFO : [ThirdSyncServiceImpl第三方页面同步服务实现类][第三方会议同步][IP:][][SYNC][新增会议-失败]:""
2025-06-05 16:47:03.222 INFO : [ThirdSyncServiceImpl第三方页面同步服务实现类][第三方会议同步][IP:][][SYNC][修改会议-成功]:"会议数量1002"
2025-06-05 16:47:03.222 INFO : 插入会议操作完毕-------------------------------->耗时:790
2025-06-05 16:47:03.286 INFO : [ThirdSyncServiceImpl第三方页面同步服务实现类][第三方会议同步][IP:][][SYNC][结束]:"原有第三方会议数量为+1002新增的会议数量为-0修改的会议数量为-1002"
2025-06-05 16:47:03.287 INFO : [ZsjServi
\ No newline at end of file
# 预定系统内部服务打包上传服务器(执行此方法会自动执行upload_saveto_pan.ps1)
# 内部程序,执行编译与更新,调用build_local.sh
$Port = 22
$RemoteUser = "root"
# 变量赋值,切换服务器时需要调整
# 5.186
# $RemoteIP = "139.159.163.86"
# $RemotePath_inner = "/var/www/java/api-java-meeting2.0"
# $RemotePath_external = "/var/www/java/external-meeting-api"
#
# $RunCommand_inner = "docker exec ujava2 /var/www/java/api-java-meeting2.0/run.sh;"
# $RunCommand_external = "docker exec ujava2 /var/www/java/external-meeting-api/run.sh;"
# 5.218
# $RemoteIP = "139.159.163.86"
# $RemotePath_inner = "/var/www/java/api-java-meeting2.0"
# $RemotePath_external = "/var/www/java/external-meeting-api"
#
# $RunCommand_inner = "docker exec ujava2 /var/www/java/api-java-meeting2.0/run.sh;"
# $RunCommand_external = "docker exec ujava2 /var/www/java/external-meeting-api/run.sh;"
# 兰州中石化项目
$RemoteIP = "139.159.163.86"
$RemotePath_inner = "/var/www/java/api-java-meeting2.0"
$RemotePath_external = "/var/www/java/external-meeting-api"
$RunCommand_inner = "docker exec ujava2 /var/www/java/api-java-meeting2.0/run.sh;"
$RunCommand_external = "docker exec ujava2 /var/www/java/external-meeting-api/run.sh;"
# scp 上传本地脚本到远程服务器执行的目录:上传至预定内部服务路径
scp -P $Port "\\192.168.9.9\deploy\01会议预定\标准版本-长期运维\01版本管理\01后端运行服务\内部预定\COM_虹软4.0_V2.1.2526.586_2025_06_25_psl自测\ubains-meeting-inner-api-1.0-SNAPSHOT.jar" "${RemoteUser}@${RemoteIP}:${RemotePath_inner}"
# scp 上传本地脚本到远程服务器执行的目录:上传至预定外部服务路径
scp -P $Port "\\192.168.9.9\deploy\01会议预定\标准版本-长期运维\01版本管理\01后端运行服务\对外预定\COMVhx2.0.2526.234_2025_06_25_dhh自测\ubains-meeting-api-1.0-SNAPSHOT.jar" "${RemoteUser}@${RemoteIP}:${RemotePath_external}"
# ssh 在远程服务器执行脚本
# 更新预定对内服务
ssh -p $Port "${RemoteUser}@${RemoteIP}" "${RunCommand_inner}"
# 更新预定对外服务
ssh -p $Port "${RemoteUser}@${RemoteIP}" "${RunCommand_external}"
# 调用 upload_saveto_pan.ps1 脚本
# Write-Host "调用 upload_saveto_pan.ps1 脚本"
# $uploadScriptPath = ".\upload_saveto_pan.ps1"
# & $uploadScriptPath
\ No newline at end of file
此差异已折叠。
# 预定系统内部服务将包上传到企业网盘
# 忽略 SSL 证书验证(如果仍然需要)
add-type @"
using System.Net;
using System.Security.Cryptography.X509Certificates;
public class TrustAllCertsPolicy : ICertificatePolicy {
public bool CheckValidationResult(
ServicePoint srvPoint, X509Certificate certificate,
WebRequest request, int certificateProblem) {
return true;
}
}
"@
[System.Net.ServicePointManager]::CertificatePolicy = New-Object TrustAllCertsPolicy
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
# 源文件路径
$SourceDirectory = ".\..\ubains-meeting-inner-api\target\ubains-meeting-inner-api-1.0-SNAPSHOT.jar"
$ReadmeSourcePath = ".\..\ubains-meeting-inner-api\README.md"
# 目标文件名
$PackageName = "ubains-meeting-inner-api-1.0-SNAPSHOT.jar"
$PackageNameReadme = "README.md"
# 读取 packageVersion.txt 文件的内容并设置自定义文件夹名称
$testFilePath = ".\..\ubains-meeting-common\src\main\resources\packageVersion.txt"
if (Test-Path -Path $testFilePath) {
$CustomFolder = Get-Content -Path $testFilePath -Raw -Encoding UTF8
Write-Host "自定义文件夹名称: $CustomFolder"
} else {
Write-Host "文件 $testFilePath 未找到"
exit 1
}
# 清理路径中的非法字符,保留字母、数字、中文字符和点号
$CustomFolder = [System.Text.RegularExpressions.Regex]::Replace($CustomFolder, '[^a-zA-Z0-9\u4e00-\u9fa5.]', '_')
# 公司网盘的本地映射路径
# $WebDavBasePath = "\\192.168.9.9\研发管理\01会议预定\标准版本-长期运维\01版本管理\01后端运行服务\内部预定"
# TODO 3.1.1.0版本使用 开始配置
# $WebDavBasePath = "\\192.168.9.9\deploy\01会议预定\标准版本-长期运维\01版本管理\01后端运行服务\内部预定\COM_虹软3.0"
# TODO 3.1.1.0版本使用 结束配置
# TODO 4.1.1.0版本使用 开始配置
$WebDavBasePath = "\\192.168.9.9\deploy\01会议预定\标准版本-长期运维\01版本管理\01后端运行服务\内部预定"
# TODO 4.1.1.0版本使用 结束配置
# 构建完整的上传路径
$WebDavUrl = Join-Path -Path $WebDavBasePath -ChildPath $CustomFolder
$WebDavFilePath = Join-Path -Path $WebDavUrl -ChildPath $PackageName
$WebDavReadmePath = Join-Path -Path $WebDavBasePath -ChildPath "README.md"
# 临时路径(这里不需要临时路径,直接使用源文件路径)
$TempPath = $SourceDirectory
# 确保自定义文件夹存在
if (-Not (Test-Path -Path $WebDavUrl)) {
New-Item -Path $WebDavUrl -ItemType Directory -Force | Out-Null
Write-Host "创建网盘文件夹: $WebDavUrl"
}
# 将文件复制到公司网盘的本地映射路径
Write-Host "开始上传jar包..."
Copy-Item -Path $TempPath -Destination $WebDavFilePath -Force
Write-Host "jar包上传完成"
# 上传README.md文件
Write-Host "开始上传README.md..."
Copy-Item -Path $ReadmeSourcePath -Destination $WebDavReadmePath -Force
Write-Host "README.md上传完成"
# 打印上传路径
Write-Host "jar文件已上传到: $WebDavFilePath"
Write-Host "README.md已上传到: $WebDavReadmePath"
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论