#!/usr/bin/env bash set -euo pipefail # === CertCenter 一键部署脚本 === # 域名: {{ domain }} # 服务器: {{ server_name }} # 生成时间: 由 CertCenter 管理后台生成 DOMAIN="{{ domain }}" DEPLOY_SCRIPT="/opt/deploy-${DOMAIN//\*/}.sh" DOWNLOAD_URL="{{ download_url }}" AUTH_HEADER="Authorization: Bearer {{ admin_token }}" LOG_FILE="/var/log/cert-deploy.log" echo "=== CertCenter 证书自动部署安装 ===" echo "域名: ${DOMAIN}" echo "" # 1. 下载部署脚本 echo "[1/4] 下载部署脚本..." curl -fsSLk -H "${AUTH_HEADER}" "${DOWNLOAD_URL}" -o "${DEPLOY_SCRIPT}" chmod +x "${DEPLOY_SCRIPT}" echo " 已保存到: ${DEPLOY_SCRIPT}" # 2. 首次执行 echo "[2/4] 首次执行部署脚本..." if "${DEPLOY_SCRIPT}"; then echo " 首次部署成功" else echo " ⚠ 首次执行返回非零(可能是证书尚未申请),不影响定时任务设置" fi # 3. 写入定时任务 echo "[3/4] 配置定时任务(每小时执行一次)..." CRON_LINE="0 * * * * ${DEPLOY_SCRIPT} >> ${LOG_FILE} 2>&1" (crontab -l 2>/dev/null | grep -v "${DEPLOY_SCRIPT}"; echo "${CRON_LINE}") | crontab - echo " 已添加: ${CRON_LINE}" # 4. 验证 echo "[4/4] 验证定时任务..." if crontab -l 2>/dev/null | grep -q "${DEPLOY_SCRIPT}"; then echo " ✓ 定时任务已生效" else echo " ✗ 定时任务设置失败,请手动添加" fi echo "" echo "=== 安装完成 ===" echo "日志文件: ${LOG_FILE}" echo "查看日志: tail -f ${LOG_FILE}" echo "手动执行: ${DEPLOY_SCRIPT}" echo "查看任务: crontab -l"