108 lines
1.8 KiB
Markdown
108 lines
1.8 KiB
Markdown
# 运维手册
|
||
|
||
## 安装
|
||
|
||
```bash
|
||
./install.sh
|
||
```
|
||
|
||
安装脚本是幂等的:
|
||
|
||
- 已有 `.env` 不覆盖;
|
||
- 已安装 Docker/Compose 则跳过;
|
||
- 包内 ours RP、Prometheus、Grafana ARM64 镜像重复加载是安全的;
|
||
- 数据目录已存在则复用。
|
||
|
||
## 启动
|
||
|
||
```bash
|
||
./start.sh
|
||
```
|
||
|
||
如需后台启动后不等待首轮 snapshot:
|
||
|
||
```bash
|
||
./start.sh --no-wait-first-run
|
||
```
|
||
|
||
## 停止和重启
|
||
|
||
```bash
|
||
./stop.sh
|
||
./restart.sh
|
||
```
|
||
|
||
## 状态检查
|
||
|
||
```bash
|
||
./status.sh
|
||
./self-check.sh
|
||
```
|
||
|
||
重点检查项:
|
||
|
||
- Docker/Compose 可用;
|
||
- runtime、Prometheus、Grafana 镜像存在;
|
||
- `HOST_DATA_DIR` 可写;
|
||
- Compose 配置合法;
|
||
- 最新 run 状态;
|
||
- metrics、Prometheus、Grafana endpoint。
|
||
|
||
`status.sh` 还会显示:
|
||
|
||
- `periodic_snapshot_reset`
|
||
- `periodic_snapshot_max_deltas`
|
||
|
||
## 升级
|
||
|
||
把新安装包解压到新目录后,推荐通过升级脚本显式复用旧 `.env`:
|
||
|
||
```bash
|
||
./upgrade.sh --reuse-env-from /path/to/old-installer/.env
|
||
```
|
||
|
||
如果新目录已经存在 `.env`,升级脚本会保留它,不覆盖。
|
||
|
||
升级不会删除以下数据:
|
||
|
||
- `runs/`
|
||
- `logs/`
|
||
- `state/rsync-mirror`
|
||
- `.env` 对应的运行配置
|
||
- Prometheus / Grafana 数据
|
||
|
||
验证定期 forced snapshot 时,可临时设置:
|
||
|
||
```bash
|
||
PERIODIC_SNAPSHOT_RESET=1
|
||
PERIODIC_SNAPSHOT_MAX_DELTAS=2
|
||
```
|
||
|
||
然后检查最新 `run-meta.json` 应出现:
|
||
|
||
```bash
|
||
snapshot_reason=periodic_snapshot_delta_limit
|
||
```
|
||
|
||
并检查独立 lifecycle 状态:
|
||
|
||
```bash
|
||
jq '{last_run,last_success_snapshot,successful_deltas_since_snapshot,state_health}' \
|
||
"${HOST_DATA_DIR}/state/run-lifecycle-state.json"
|
||
```
|
||
|
||
验证完成后恢复:
|
||
|
||
```bash
|
||
PERIODIC_SNAPSHOT_MAX_DELTAS=100
|
||
```
|
||
|
||
## 清理
|
||
|
||
```bash
|
||
./cleanup.sh --keep-runs 100
|
||
./cleanup.sh --keep-runs 100 --execute
|
||
```
|
||
|
||
默认 dry-run,确认后加 `--execute`。
|