rpi: бэкап OneDrive на HDD + SMART/бэкап-метрики через pushgateway на fr1
- servers/rpi.md: новая домашняя Raspberry Pi 4 (Trixie, cloud-init), HDD 4 ТБ, грабли с питанием двух HDD от USB - stacks/rpi-backup: rclone sync с вечным архивом версий, еженедельная сверка хэшей, smartd, пуш SMART и статуса бэкапов - fr1: pushgateway (127.0.0.1:9091), приём по SSH через forced command ~/bin/pushgw-ingest, алерты группы rpi Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
3604e843c8
commit
d1269162e7
Executable
+24
@@ -0,0 +1,24 @@
|
||||
#!/bin/bash
|
||||
# Еженедельная проверка целостности: перечитывает весь HDD и сверяет хэши
|
||||
# current/ — с хэшами OneDrive (ловит битые/недокачанные/лишние файлы)
|
||||
# archive/ — с сохранёнными манифестами (ловит порчу данных на диске)
|
||||
set -uo pipefail
|
||||
ROOT=/mnt/backup/onedrive
|
||||
TS=$(date +%F_%H%M)
|
||||
LOG="$ROOT/logs/verify-$TS.log"
|
||||
mountpoint -q /mnt/backup || { echo "/mnt/backup не смонтирован — пропуск"; exit 1; }
|
||||
rc=0
|
||||
|
||||
rclone check onedrive: "$ROOT/current" --exclude "/Personal Vault/**" \
|
||||
--checkers 8 --combined "$ROOT/logs/verify-$TS.current.txt" \
|
||||
--log-file "$LOG" --log-level NOTICE || rc=1
|
||||
|
||||
for m in "$ROOT"/manifests/archive-*.qxh; do
|
||||
[ -e "$m" ] || continue
|
||||
d=$(basename "$m" .qxh); d=${d#archive-}
|
||||
rclone checksum quickxor "$m" "$ROOT/archive/$d" --log-file "$LOG" --log-level NOTICE || { echo "архив $d: несовпадение"; rc=1; }
|
||||
done
|
||||
|
||||
grep -vc "^=" "$ROOT/logs/verify-$TS.current.txt" | xargs echo "расхождений в current:"
|
||||
[ $rc -eq 0 ] && echo "OK: целостность подтверждена" || echo "ЕСТЬ РАСХОЖДЕНИЯ — см. $LOG и verify-$TS.current.txt"
|
||||
exit $rc
|
||||
Reference in New Issue
Block a user