Backup automatico script del 2026-01-25 07:00

This commit is contained in:
2026-01-25 07:00:03 +01:00
parent 9dbe0cfa93
commit f0c5672607
16 changed files with 241 additions and 61 deletions

View File

@@ -1,4 +1,5 @@
import argparse
import datetime
import subprocess
import re
import os
@@ -21,6 +22,16 @@ LIMIT_JITTER = 30.0 # ms di deviazione (sopra 30ms lagga la voce/gioco)
# File di stato
STATE_FILE = "/home/daniely/docker/telegram-bot/quality_state.json"
LOG_FILE = "/home/daniely/docker/telegram-bot/quality_log.txt"
def log_line(message: str) -> None:
ts = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
try:
with open(LOG_FILE, "a", encoding="utf-8") as f:
f.write(f"{ts} {message}\n")
except Exception:
pass
def send_telegram(msg, chat_ids: Optional[List[str]] = None):
"""
@@ -55,6 +66,7 @@ def save_state(active):
def measure_quality(chat_ids: Optional[List[str]] = None):
print("--- Avvio Test Qualità Linea ---")
log_line("INFO Avvio Test Qualità Linea")
# Esegue 50 ping rapidi (0.2s intervallo)
# -q: quiet (solo riepilogo finale)
@@ -89,7 +101,9 @@ def measure_quality(chat_ids: Optional[List[str]] = None):
else:
avg_ping = 0.0
print(f"Risultati: Loss={loss}% | Jitter={jitter}ms | AvgPing={avg_ping}ms")
result_line = f"Risultati: Loss={loss}% | Jitter={jitter}ms | AvgPing={avg_ping}ms"
print(result_line)
log_line(f"INFO {result_line}")
# --- LOGICA ALLARME ---
state = load_state()
@@ -110,8 +124,10 @@ def measure_quality(chat_ids: Optional[List[str]] = None):
send_telegram(msg, chat_ids=chat_ids)
save_state(True)
print("Allarme inviato.")
log_line("WARN Allarme inviato")
else:
print("Qualità ancora scarsa (già notificato).")
log_line("WARN Qualità ancora scarsa (già notificato)")
elif was_active and not is_bad:
# RECOVERY
@@ -121,8 +137,10 @@ def measure_quality(chat_ids: Optional[List[str]] = None):
send_telegram(msg, chat_ids=chat_ids)
save_state(False)
print("Recovery inviata.")
log_line("INFO Recovery inviata")
else:
print("Linea OK.")
log_line("INFO Linea OK")
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Network quality monitor")