- 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>
11 lines
742 B
Bash
Executable File
11 lines
742 B
Bash
Executable File
#!/bin/sh
|
|
# Forced command для пуш-ключей хостов за NAT (authorized_keys: command="~/bin/pushgw-ingest <instance>").
|
|
# Клиент передаёт только имя job (ssh ... <job>), метрики — в stdin в text-формате Prometheus.
|
|
# instance задаётся ключом, а не клиентом: хост не может писать метрики от чужого имени.
|
|
instance="$1"
|
|
job="$SSH_ORIGINAL_COMMAND"
|
|
case "$instance" in ""|*[!a-z0-9_-]*) echo "bad instance" >&2; exit 2;; esac
|
|
case "$job" in ""|*[!a-z0-9_]*) echo "bad job" >&2; exit 2;; esac
|
|
exec curl -sS --fail-with-body --max-time 30 -X PUT --data-binary @- \
|
|
"http://127.0.0.1:9091/metrics/job/$job/instance/$instance"
|