rpi: архив vault в gitea — каждый час при изменениях (было раз в сутки); алерт свежести 3 ч

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
gilfanovr
2026-10-11 21:22:03 +03:00
co-authored by Claude Opus 5.5
parent 7ef4d0b3e5
commit b44a9e6fb2
5 changed files with 10 additions and 10 deletions
+1 -1
View File
@@ -165,7 +165,7 @@ Docker CE 29.9 + Compose v5.6 из репо download.docker.com (в Debian ст
- Клиент — официальный `obsidian-headless` 0.0.14 (`/usr/bin/ob`, npm, Node.js 24 LTS из репо NodeSource — в Debian 13 только Node 20, а клиенту нужен ≥ 22). Вход `ob login` делал владелец (учётка ruzzyrullezz@gmail.com), привязка `ob sync-setup` — vault id `469340a4…`, устройство `rpi-astra`, без E2E-пароля.
- `obsidian-sync.service` (user astra, `ob sync --path /home/astra/vault --continuous`, Restart=always). Режим **bidirectional** (решение владельца: Astra правит заметки по его просьбе); конфиги `.obsidian` не синхронизируются; типы файлов — все (`unsupported` включён).
- ⚠️ Mac владельца не выгружает в Sync «прочие типы» (`.mmd` — 7 диаграмм `Работа/Perps/flows/`): их нет ни в облаке, ни на rpi/iPhone. Лечится на Mac: Настройки → Синхронизация → Другие типы файлов. Суточный архив пока записал их удаление (в истории они есть, коммит `014b2a9`).
- **Архив в git** — `vault-archive.timer` (03:45) → `/usr/local/bin/vault-archive` (`stacks/rpi-backup/`): односторонний commit+push в `ruzzy/MyVault` (продолжает историю git-эпохи; Astra — коллаборатор с записью). Git-каталог отдельно — `~astra/vault.git` с `core.worktree=/home/astra/vault`, в vault нет `.git`. Скрытые файлы не стейджатся (Sync их не приносит — иначе были бы ложные удаления). Первый снимок 2026-10-11 — `014b2a9` (изменения с 2026-09-23). Итог → `backup_*{job="backup_vault"}`, алерты `BackupStale` (>26 ч) и `BackupNeverReported`.
- **Архив в git** — `vault-archive.timer` (**каждый час** с 2026-10-11, коммит только при изменениях; было раз в сутки 03:45) → `/usr/local/bin/vault-archive` (`stacks/rpi-backup/`): односторонний commit+push в `ruzzy/MyVault` (продолжает историю git-эпохи; Astra — коллаборатор с записью). Git-каталог отдельно — `~astra/vault.git` с `core.worktree=/home/astra/vault`, в vault нет `.git`. Скрытые файлы не стейджатся (Sync их не приносит — иначе были бы ложные удаления). Первый снимок 2026-10-11 — `014b2a9` (изменения с 2026-09-23). Итог → `backup_*{job="backup_vault"}`, алерты `BackupStale` (>3 ч) и `BackupNeverReported` (3 ч).
- Astra — скилл `obsidian` (`ruzzy/astra-bot`, `codex/skills/obsidian/`): читать свободно, писать только по прямой просьбе, новое — в `Неотсортированное/`, правка — с показом изменений, в стиле владельца (вики-ссылки, без тегов/frontmatter, заметка-папка, картинки в `static/images/`); служебные файлы агента в vault — никогда. Запись в vault вне песочницы Codex → каждая правка через кнопку подтверждения. Проверено 2026-10-11: ответ по заметке «Читаем и слушаем».
- ⚠️ Бот `claude-channels` на fr1 доступа к vault больше не имеет (см. `servers/fr1.md`).
@@ -99,7 +99,7 @@ groups:
or (time() - backup_last_success_timestamp{job="backup_onedrive_verify"} > 8 * 86400)
or (time() - backup_last_success_timestamp{job="backup_servers"} > 26 * 3600)
or (time() - backup_last_success_timestamp{job="backup_router"} > 30 * 3600)
or (time() - backup_last_success_timestamp{job="backup_vault"} > 26 * 3600)
or (time() - backup_last_success_timestamp{job="backup_vault"} > 3 * 3600)
or (time() - backup_last_success_timestamp{job="backup_router_sample"} > 35 * 86400)
for: 10m
labels: {severity: critical}
@@ -194,7 +194,7 @@ groups:
summary: "Дом: необычно большая ОТДАЧА в интернет — {{ $value | humanize1024 }}Б/с 30+ мин (облачная синхронизация, торрент или что-то подозрительное). Кто: `router traffic --live`."
- alert: BackupNeverReported
expr: absent(backup_last_success_timestamp{instance="rpi",job="backup_vault"})
for: 26h
for: 3h
labels: {severity: warning, instance: rpi, job: backup_vault}
annotations:
summary: "rpi: архив Obsidian-vault в gitea не отчитывался 26+ ч — проверь vault-archive / obsidian-sync"
summary: "rpi: архив Obsidian-vault в gitea не отчитывался 3+ ч — проверь vault-archive / obsidian-sync"
+2 -2
View File
@@ -1,5 +1,5 @@
#!/bin/bash
# Суточный ОДНОСТОРОННИЙ архив Obsidian-vault в gitea (ruzzy/MyVault).
# Ежечасный (коммит только при изменениях) ОДНОСТОРОННИЙ архив Obsidian-vault в gitea (ruzzy/MyVault).
# Vault синхронизирует Obsidian Sync (obsidian-sync.service, ~astra/vault); git — только история:
# commit + push, никогда не pull — в vault отсюда ничего не попадает.
# Git-каталог отдельно (~astra/vault.git, core.worktree=~astra/vault), чтобы в vault не было .git.
@@ -14,7 +14,7 @@ if "${G[@]}" diff --cached --quiet; then
echo "изменений нет"
else
stat=$("${G[@]}" diff --cached --shortstat)
"${G[@]}" commit -q -m "Архив vault $(date +%F)" -m "$stat"
"${G[@]}" commit -q -m "Архив vault $(date "+%F %H:%M")" -m "$stat"
echo "коммит: $stat"
fi
"${G[@]}" push -q origin HEAD:main
@@ -1,5 +1,5 @@
[Unit]
Description=Daily one-way archive of Obsidian vault to gitea (ruzzy/MyVault)
Description=Hourly one-way archive of Obsidian vault to gitea (ruzzy/MyVault)
Wants=network-online.target
After=network-online.target obsidian-sync.service
@@ -1,9 +1,9 @@
[Unit]
Description=Daily Obsidian vault archive
Description=Hourly Obsidian vault archive (commit only if changed)
[Timer]
OnCalendar=*-*-* 03:45
RandomizedDelaySec=10m
OnCalendar=hourly
RandomizedDelaySec=5m
Persistent=true
[Install]