#!/usr/bin/env bash set -euo pipefail REMOTE_DIR="${REMOTE_DIR:-/opt/hyb-oa-trialrun}" REMOTE_ENV_FILE="${REMOTE_ENV_FILE:-${REMOTE_DIR}/deploy/trialrun/.env}" COMPOSE_FILE="${COMPOSE_FILE:-deploy/trialrun/docker-compose.yml}" SERVICE_NAME="${SERVICE_NAME:-hyb-oa-warch3-ops}" RUN_AT="${RUN_AT:-07:30}" MODE="${1:-install}" SERVICE_FILE="/etc/systemd/system/${SERVICE_NAME}.service" TIMER_FILE="/etc/systemd/system/${SERVICE_NAME}.timer" need_root() { if [[ "$(id -u)" != "0" ]]; then echo "[ERROR] 请以 root 执行,或使用 sudo" >&2 exit 1 fi } uninstall_timer() { need_root systemctl disable --now "${SERVICE_NAME}.timer" >/dev/null 2>&1 || true systemctl stop "${SERVICE_NAME}.service" >/dev/null 2>&1 || true rm -f "$SERVICE_FILE" "$TIMER_FILE" systemctl daemon-reload echo "[warch3-ops-timer] uninstalled ${SERVICE_NAME}" } install_timer() { need_root if [[ ! -d "$REMOTE_DIR" ]]; then echo "[ERROR] REMOTE_DIR 不存在: $REMOTE_DIR" >&2 exit 1 fi if [[ ! -f "$REMOTE_ENV_FILE" ]]; then echo "[ERROR] 远端 env 不存在: $REMOTE_ENV_FILE" >&2 exit 1 fi local compose_exec if docker compose version >/dev/null 2>&1; then compose_exec="docker compose" elif command -v docker-compose >/dev/null 2>&1; then compose_exec="docker-compose" else echo "[ERROR] 远端既没有 docker compose,也没有 docker-compose" >&2 exit 1 fi cat >"$SERVICE_FILE" <"$TIMER_FILE" <&2 exit 2 ;; esac