fix: 远程执行命令时加载环境变量

- 使用 bash -l 加载登录 shell 环境变量
- 解决 SSH 非交互式 shell 不加载 .bash_profile 导致 java 命令找不到的问题
This commit is contained in:
zhangjf 2026-02-23 15:51:41 +08:00
parent 112a970563
commit 852af7ee26

View File

@ -60,10 +60,11 @@ check_sshpass() {
fi
}
# 执行远程命令
# 执行远程命令(加载环境变量)
remote_exec() {
local cmd="$1"
sshpass -p "$PROD_PASSWORD" ssh -o StrictHostKeyChecking=no "$PROD_USER@$PROD_HOST" "$cmd"
# 使用 bash -l 加载登录 shell 环境变量(包括 .bash_profile
sshpass -p "$PROD_PASSWORD" ssh -o StrictHostKeyChecking=no "$PROD_USER@$PROD_HOST" "bash -l -c '$cmd'"
}
# 上传文件