脚本清理:移除交叉编译,统一板卡原生编译流程 + 数据脚本支持 pCanBridge
- 移除交叉编译脚本 build-arm64.sh / build-arm64-image.sh 及本地 bin/arm64、build-arm64 产物目录(QEMU 模拟编译过慢)。 板卡产物统一由 ./scripts/build-board.sh 原生编译产出。 - deploy.sh 简化为 mission + 5 个 systemd 服务安装(不再推送 二进制),头注明确二进制来源为 build-board.sh。 - fetch-data.sh:新增 pCanBridge_data.db(+wal/shm) 下载,补齐 遗漏的 pccu_data.db-wal/-shm,--journal 导出列表加入 pCanBridge。 - clean-data.sh:同步清理 pCanBridge 数据库三件套;修复停服命令 漏掉 pCCU 的老问题(边写边清会产生脏数据),现按 pCanBridge→apps→moosdb 顺序全停;--start 启动列表补齐。 - .gitignore:新增全局规则 *.db / *.db-shm / *.db-wal / *.db-journal / *.log,所有数据库与日志一律不入库;清理散落 的重复条目与失效的 bin/arm64 条目。 验证:各脚本 bash -n 通过,help 输出正常,git check-ignore 命中 新规则且不影响 .moos 等配置文件。
This commit is contained in:
+15
-37
@@ -1,18 +1,20 @@
|
||||
#!/bin/bash
|
||||
#=======================================================================
|
||||
# FILE: scripts/deploy.sh
|
||||
# DESC: 部署 pPowerManger / pPowerMangerHost / pCCU / pCanBridge(aarch64 二进制 +
|
||||
# mission)到目标板卡 (RK3588 / Ubuntu 22.04),并用五个独立
|
||||
# systemd 服务(moosdb / pPowerManger / pPowerMangerHost / pCCU /
|
||||
# pCanBridge)管理。只安装服务 + daemon-reload,默认不启动、不自启。
|
||||
# DESC: 部署 mission + 5 个 systemd 服务(moosdb / pPowerManger /
|
||||
# pPowerMangerHost / pCCU / pCanBridge)到目标板卡 (RK3588 /
|
||||
# Ubuntu 22.04)。只安装服务 + daemon-reload,默认不启动、不自启。
|
||||
#
|
||||
# 注意:二进制由 ./scripts/build-board.sh 在板卡原生编译并部署到
|
||||
# /root/work/h100/bin/(交叉编译已移除),本脚本不再推送二进制。
|
||||
#
|
||||
# 用法:
|
||||
# ./scripts/deploy.sh setup-ssh 一次性:生成 ed25519 key + ssh-copy-id
|
||||
# ./scripts/deploy.sh 默认:推送二进制 + mission + 装 4 个
|
||||
# ./scripts/deploy.sh 默认:推送 mission + 装 5 个
|
||||
# systemd 服务 + daemon-reload(不启动)
|
||||
# ./scripts/deploy.sh --start 部署后按依赖顺序启动服务
|
||||
# ./scripts/deploy.sh status 板卡 4 个服务状态
|
||||
# ./scripts/deploy.sh stop 停止 4 个服务
|
||||
# ./scripts/deploy.sh status 板卡各服务状态
|
||||
# ./scripts/deploy.sh stop 停止各服务
|
||||
# ./scripts/deploy.sh help 显示帮助
|
||||
#
|
||||
# 参数:
|
||||
@@ -24,7 +26,7 @@
|
||||
# --ccu-port <n> 覆盖 mission 中 pPowerManger 的 CCU 端口 (ccuport)
|
||||
#
|
||||
# 板卡布局:
|
||||
# /root/work/h100/bin/ aarch64 二进制
|
||||
# /root/work/h100/bin/ 二进制(由 build-board.sh 板卡编译产出)
|
||||
# /root/work/h100/missions/ 板卡 mission h100.moos
|
||||
# /root/work/h100/data/ 数据库存储目录 (power_data.db 等)
|
||||
# /etc/systemd/system/ moosdb.service / pPowerManger.service /
|
||||
@@ -51,7 +53,7 @@ warn() { printf '\033[1;33m[deploy]\033[0m %s\n' "$*"; }
|
||||
err() { printf '\033[1;31m[deploy]\033[0m %s\n' "$*"; }
|
||||
|
||||
usage() {
|
||||
sed -n '2,31p' "${BASH_SOURCE[0]}" | sed 's/^# \{0,1\}//'
|
||||
sed -n '2,35p' "${BASH_SOURCE[0]}" | sed 's/^# \{0,1\}//'
|
||||
exit 0
|
||||
}
|
||||
|
||||
@@ -100,22 +102,6 @@ cmd_setup_ssh() {
|
||||
#-------------------------------------------------------------------
|
||||
# 前置检查
|
||||
#-------------------------------------------------------------------
|
||||
check_local() {
|
||||
local missing=0
|
||||
for b in pPowerManger pPowerMangerHost pCCU pCanBridge; do
|
||||
if [ ! -f "${PROJECT_ROOT}/bin/arm64/${b}" ]; then
|
||||
err "缺少本地 aarch64 二进制: bin/arm64/${b}(先运行 ./scripts/build-arm64.sh)"; missing=1
|
||||
elif ! file "${PROJECT_ROOT}/bin/arm64/${b}" | grep -q "aarch64"; then
|
||||
err "bin/arm64/${b} 不是 aarch64 二进制"; missing=1
|
||||
fi
|
||||
done
|
||||
if [ ! -f "${PROJECT_ROOT}/missions/h100.moos" ]; then
|
||||
err "缺少板卡 mission: missions/h100.moos"; missing=1
|
||||
fi
|
||||
[ "${missing}" -eq 0 ] || return 1
|
||||
ok "本地产物校验通过 (aarch64 + mission)"
|
||||
}
|
||||
|
||||
check_ssh() {
|
||||
if ! ${SSH} "${SSH_TARGET}" 'true' 2>/dev/null; then
|
||||
err "无法免密 SSH 到 ${SSH_TARGET}"
|
||||
@@ -194,20 +180,13 @@ upsert_moos_param() {
|
||||
# 命令: deploy
|
||||
#-------------------------------------------------------------------
|
||||
cmd_deploy() {
|
||||
check_local || return 1
|
||||
check_ssh || return 1
|
||||
check_ssh || return 1
|
||||
[ -f "${PROJECT_ROOT}/missions/h100.moos" ] || { err "缺少板卡 mission: missions/h100.moos"; return 1; }
|
||||
|
||||
# 1. 推送二进制 + mission
|
||||
# 1. 创建板卡目录 + 推送 mission
|
||||
info "创建板卡目录 ${BOARD_DIR}/{bin,missions,data} ..."
|
||||
${SSH} "${SSH_TARGET}" "mkdir -p ${BOARD_DIR}/bin ${BOARD_DIR}/missions ${BOARD_DIR}/data" || { err "创建目录失败"; return 1; }
|
||||
|
||||
info "推送 aarch64 二进制 ..."
|
||||
${SCP} -q "${PROJECT_ROOT}/bin/arm64/pPowerManger" \
|
||||
"${PROJECT_ROOT}/bin/arm64/pPowerMangerHost" \
|
||||
"${PROJECT_ROOT}/bin/arm64/pCCU" \
|
||||
"${PROJECT_ROOT}/bin/arm64/pCanBridge" \
|
||||
"${SSH_TARGET}:${BOARD_DIR}/bin/" || { err "推送二进制失败"; return 1; }
|
||||
|
||||
info "推送 mission h100.moos ..."
|
||||
local mission_src="${PROJECT_ROOT}/missions/h100.moos"
|
||||
local mission_push="${mission_src}" tmp_moos=""
|
||||
@@ -223,8 +202,7 @@ cmd_deploy() {
|
||||
"${SSH_TARGET}:${BOARD_DIR}/missions/" || { err "推送 mission 失败"; [ -n "${tmp_moos}" ] && rm -f "${tmp_moos}"; return 1; }
|
||||
[ -n "${tmp_moos}" ] && rm -f "${tmp_moos}"
|
||||
|
||||
${SSH} "${SSH_TARGET}" "chmod +x ${BOARD_DIR}/bin/pPowerManger ${BOARD_DIR}/bin/pPowerMangerHost ${BOARD_DIR}/bin/pCCU ${BOARD_DIR}/bin/pCanBridge"
|
||||
ok "二进制与 mission 已推送"
|
||||
ok "mission 已推送(二进制由 build-board.sh 在板卡编译部署)"
|
||||
|
||||
# 2. 生成并安装 4 个 systemd unit
|
||||
local unit
|
||||
|
||||
Reference in New Issue
Block a user