From b32392aa7e402e3b8badd97fea3f7cdacfc31008 Mon Sep 17 00:00:00 2001 From: Claude Agent Date: Sun, 13 Sep 2026 10:18:12 +0000 Subject: [PATCH] fix(ups): parola UPS citita din /etc/nut/ups-shutdown.conf Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01KddsXCqEbKMhdFJDYbAsx8 --- proxmox/cluster/ups/docs/UPS-MONTHLY-TEST.md | 17 ++++++++++++++--- proxmox/cluster/ups/scripts/ups-monthly-test.sh | 6 +++++- .../cluster/ups/scripts/ups-shutdown-cluster.sh | 2 +- 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/proxmox/cluster/ups/docs/UPS-MONTHLY-TEST.md b/proxmox/cluster/ups/docs/UPS-MONTHLY-TEST.md index c42cb5d..ace1558 100644 --- a/proxmox/cluster/ups/docs/UPS-MONTHLY-TEST.md +++ b/proxmox/cluster/ups/docs/UPS-MONTHLY-TEST.md @@ -201,10 +201,21 @@ ssh root@10.0.20.201 "/opt/scripts/ups-monthly-test.sh" ```bash UPS_NAME="nutdev1" # Numele UPS-ului din NUT UPS_USER="admin" # Username pentru comenzi NUT -UPS_PASS="parola99" # Parola pentru comenzi NUT +UPS_PASS="" # Parola vine din /etc/nut/ups-shutdown.conf MAIL_TO="root@pam" # Destinatar email rapoarte ``` +Parola NU mai stă în clar în script. Se citește din `/etc/nut/ups-shutdown.conf` +(același fișier folosit de `ups-shutdown-cluster.sh`), format: + +```bash +UPS_PASS='parola-reala-aici' +``` + +Fișierul trebuie să existe pe nod cu `chmod 600` și proprietar `root:root`. Fără +el, `ups-monthly-test.sh` se oprește cu eroare ("UPS_PASS lipseste din +/etc/nut/ups-shutdown.conf") înainte să apeleze `upscmd`. + ### Personalizare cron: Pentru a schimba data/ora de rulare, editează cron: @@ -359,7 +370,7 @@ upsc nutdev1 ups.status upscmd -l nutdev1 | grep battery # Autentificare corectă? -upscmd -u admin -p parola99 nutdev1 test.battery.start.quick +upscmd -u admin -p "$UPS_PASS" nutdev1 test.battery.start.quick ``` ### Bateria nu se descarcă în test @@ -375,7 +386,7 @@ upscmd -u admin -p parola99 nutdev1 test.battery.start.quick watch -n 1 'upsc nutdev1 battery.voltage' # Apoi rulează test manual și observă scăderea -upscmd -u admin -p parola99 nutdev1 test.battery.start.quick +upscmd -u admin -p "$UPS_PASS" nutdev1 test.battery.start.quick ``` ### Email nu ajunge diff --git a/proxmox/cluster/ups/scripts/ups-monthly-test.sh b/proxmox/cluster/ups/scripts/ups-monthly-test.sh index 4518a95..3ba78de 100644 --- a/proxmox/cluster/ups/scripts/ups-monthly-test.sh +++ b/proxmox/cluster/ups/scripts/ups-monthly-test.sh @@ -16,7 +16,7 @@ TRENDFILE="/var/log/ups-battery-trend.csv" BATTERY_DATE_FILE="/etc/nut/battery-install-date" UPS_NAME="nutdev1" UPS_USER="admin" -UPS_PASS="parola99" +UPS_PASS="" TEMPLATE_DIR="/etc/pve/notification-templates/default" START_TIME=$(date +%s) HOSTNAME=$(hostname) @@ -27,6 +27,10 @@ log() { echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" | tee -a $LOGFILE } +# Parola vine din /etc/nut/ups-shutdown.conf (nu mai e in clar in script). +[[ -r /etc/nut/ups-shutdown.conf ]] && source /etc/nut/ups-shutdown.conf +[[ -n "$UPS_PASS" ]] || { log "EROARE: UPS_PASS lipseste din /etc/nut/ups-shutdown.conf"; exit 1; } + # Câte rulări formează linia de bază și câte intră în fereastra recentă. # Baza = primele rulări înregistrate, adică bateria în starea ei cea mai bună # pe care o avem măsurată. Fereastra recentă e mediană pe 3, ca o lună diff --git a/proxmox/cluster/ups/scripts/ups-shutdown-cluster.sh b/proxmox/cluster/ups/scripts/ups-shutdown-cluster.sh index e7547f5..017ff9a 100755 --- a/proxmox/cluster/ups/scripts/ups-shutdown-cluster.sh +++ b/proxmox/cluster/ups/scripts/ups-shutdown-cluster.sh @@ -37,7 +37,7 @@ ORACLE_DOCKER=oracle-xe UPS_NAME="nutdev1" UPS_USER="admin" -UPS_PASS="parola99" # suprascris de /etc/nut/ups-shutdown.conf, dacă există +UPS_PASS="" # din /etc/nut/ups-shutdown.conf # Bugete de timp — sunt secunde de baterie, nu le mări fără să știi autonomia. GUEST_STOP_WAIT=150 # cât așteptăm guest-urile obișnuite