Day 18:自动备份和恢复自定义UI —— 构建Dashboard自动恢复脚本


🚀 Day 18:自动备份和恢复自定义UI ------ 构建Dashboard自动恢复脚本

今日目标:今天我们要构建一个自动备份和恢复自定义 UI 界面的脚本。通过这个脚本,我们可以快速、安全地将容易被 AOB 覆盖的 XML 文件恢复到原始状态,同时避免手动操作的错误和风险。


💻 第一部分:编写一键备份脚本 (backup_ui.sh)

我们需要将之前编写的自定义 UI 使用的 XML 文件从容易被 AOB 覆盖或修改的 default 目录中"抢救"出来,存放到一个 AOB 永远触碰不到的安全地带(比如 ~/peak_ui_backup)。

请在你的 WSL 或 Linux 终端中,回到你的用户主目录,并创建备份脚本:

bash 复制代码
cd ~
vi backup_ui.sh

进入 vi 后,先按 Esc 键,输入 :set paste 并回车开启防干扰粘贴模式,然后再按 i 键进入插入模式,粘贴以下全量 Bash 代码:

bash 复制代码
#!/bin/bash
# ==============================================================================
# PEAK AI Hunter - UI Assets Backup Script
# Extracts critical custom XMLs from AOB's volatile default directory.
# ==============================================================================

# Define Splunk app directory and Safe Harbor directory
APP_DIR="/opt/splunk/etc/apps/TA-peak-llm-analyzer"
BACKUP_DIR="$HOME/peak_ui_backup"

echo "[INFO] Starting PEAK AI Hunter UI Backup process..."

# Step 1: Create the Safe Harbor directory structure
mkdir -p "$BACKUP_DIR/views"
mkdir -p "$BACKUP_DIR/nav"

# Step 2: Backup the Executive Dashboard
if [ -f "$APP_DIR/default/data/ui/views/peak_executive_dashboard.xml" ]; then
    cp "$APP_DIR/default/data/ui/views/peak_executive_dashboard.xml" "$BACKUP_DIR/views/"
    echo "[SUCCESS] Backed up: peak_executive_dashboard.xml"
else
    echo "[WARNING] Dashboard XML not found in target directory!"
fi

# Step 3: Backup the Custom Navigation Bar
if [ -f "$APP_DIR/default/data/ui/nav/default.xml" ]; then
    cp "$APP_DIR/default/data/ui/nav/default.xml" "$BACKUP_DIR/nav/"
    echo "[SUCCESS] Backed up: default.xml (Navigation Bar)"
else
    echo "[WARNING] Nav XML not found in target directory!"
fi

echo "[INFO] Backup complete. Your UI assets are safe in $BACKUP_DIR."

保存并退出 (Esc -> :wq)。


💻 第二部分:编写一键覆盖恢复脚本 (restore_ui.sh)

这个恢复脚本极其纯粹,它不包含任何账号密码,只负责将避风港中的高级 XML 重新覆盖回插件系统中。

在主目录创建恢复脚本:

bash 复制代码
vi restore_ui.sh

同样进入 vi 后,先按 Esc 键,输入 :set paste 开启防干扰模式,然后再按 i 键,粘贴以下代码:

bash 复制代码
#!/bin/bash
# ==============================================================================
# PEAK AI Hunter - UI Assets Restore Script
# Injects custom XMLs back into the app's default configuration directory.
# Note: Manual web refresh required via debug endpoint after execution.
# ==============================================================================

# Define Splunk app directory and Safe Harbor directory
APP_DIR="/opt/splunk/etc/apps/TA-peak-llm-analyzer"
BACKUP_DIR="$HOME/peak_ui_backup"

echo "[INFO] Starting PEAK AI Hunter UI Restoration process..."

# Step 1: Inject Dashboard XML back to default views
if [ -f "$BACKUP_DIR/views/peak_executive_dashboard.xml" ]; then
    cp "$BACKUP_DIR/views/peak_executive_dashboard.xml" "$APP_DIR/default/data/ui/views/"
    echo "[SUCCESS] Injected: peak_executive_dashboard.xml"
else
    echo "[ERROR] Backup Dashboard XML not found!"
fi

# Step 2: Inject Navigation XML back to default nav
if [ -f "$BACKUP_DIR/nav/default.xml" ]; then
    cp "$BACKUP_DIR/nav/default.xml" "$APP_DIR/default/data/ui/nav/"
    echo "[SUCCESS] Injected: default.xml (Navigation Bar)"
else
    echo "[ERROR] Backup Navigation XML not found!"
fi

echo "[INFO] File restoration complete."
echo "[REQUIRED] Please manually trigger Splunk cache refresh in your browser:"
echo "           --> https://localhost:8000/en-US/debug/refresh"

保存并退出 (Esc -> :wq)。


⚙️ 第三部分:赋予权限与终极复活演练

脚本就绪后,我们赋予它们 Linux 系统的执行权限:

bash 复制代码
chmod +x backup_ui.sh restore_ui.sh

🔥 防覆盖备份和恢复演练 (Disaster Recovery Drill):

  1. 执行备份安全锚定 :在终端运行 ./backup_ui.sh。看到双 [SUCCESS] 提示后,你的前端自定义 UI 界面的XML 文件(peak_executive_dashboard.xml 和 default.xml)已经安全存入本地家目录。
  2. 人为制造毁灭性覆盖 :进入 Splunk 页面上的 Add-on Builder,打开你的 TA-peak-llm-analyzer 插件。在任何一个配置页点击一下 Save。
  3. 确认AOB覆盖自定义UI:刷新大屏,你会发现之前自定义的UI大屏瞬间被 AOB 的简陋默认框架吞噬。
  4. 一键底层回写:回到终端,执行恢复脚本:
bash 复制代码
./restore_ui.sh
  1. 装在自定义UI配置 :打开你的浏览器,直接访问: https://localhost:8000/en-US/debug/refresh (根据你的真实环境,也可能是 http://你的IP:8000/en-US/debug/refresh) 点击页面最下方的 Refresh 按钮。重新回到插件首页,大屏和导航菜单等自定义 UI 配置已经成功恢复!

🎉 Day 18 结语: 通过这种"文件回写 + 手动调试刷新"的解耦设计,我们用最少、最安全的命令,保存了你的自定义 UI 配置。你再也不用担心 AOB 的"独裁覆写",开发后期可以放心更新代码、脚本和配置。

明天,Day 19:合规与脱敏,我们的后端核心、前端大屏、运维脚本全部完成封版,我们将进入最后的商业化发布流水线,学习如何将代码进行企业级合规脱敏并打包发布!

相关推荐
林伽一7 分钟前
林伽一 · AI科技周报 | 2026年10月第2周
人工智能·科技
Hum8le8 分钟前
漏洞知识点《php伪协议》
开发语言·安全·web安全·php
卿卿的产品经理日记21 分钟前
【AI产品经理实战】Day 35|从“沉迷工具“到回归 AI 底层:Skill 收官、系统复盘与下一个 13 天
人工智能·学习·产品经理
AI闲人35 分钟前
Jev 们不缺判断力,缺的是你的标准
人工智能·数字化·企业ai落地·语义层
砚凝霜1 小时前
【软考信息安全】第十九章 Unix/Linux安全分析与防护
linux·安全·unix
Pin_Qing1 小时前
速度正式单独收费:OpenAI GPT-6.1 Sol Ultrafast上线,8倍速、6倍价,开发者该怎么选?
人工智能
m0_715674431 小时前
数据分类分级的范式转换:从规则匹配到场景化高准确率一键部署
大数据·网络·人工智能·网络安全
源梦倩影1 小时前
我把 YuanPlan 开源了:让任务、项目文档和 AI 协作在同一个地方发生
人工智能
合尘猫1 小时前
AI 项目上线就停:一次事件循环阻塞的完整排查过程
人工智能·后端·python
yichengerp1 小时前
电子行业常用erp系统有哪些?推荐适合中小电子厂的易呈erp软件,操作简单,易落地
大数据·运维·人工智能·云计算·制造