Refonte sauvegarde MariaDB NAS => VPS2

This commit is contained in:
2026-06-08 10:44:38 +02:00
parent a49f20cd0b
commit 87e2bc7b51
6 changed files with 289 additions and 26 deletions

View File

@@ -0,0 +1,62 @@
#!/usr/bin/env python3
# A mettre dans le dossier /home/debian/Gestion_sondes/scripts du VPS
from pathlib import Path
from datetime import datetime, timedelta
import sys
BACKUP_DIR = Path("/home/debian/backup")
LOG_FILE = BACKUP_DIR / "check_backup_mysql.log"
MAX_AGE_HOURS = 30
MIN_SIZE_MB = 50
def log(message):
ligne = f"{datetime.now().strftime('%Y-%m-%d %H:%M:%S')} - {message}"
print(ligne)
with LOG_FILE.open("a", encoding="utf-8") as f:
f.write(ligne + "\n")
def main():
if not BACKUP_DIR.exists():
log(f"❌ Dossier introuvable : {BACKUP_DIR}")
sys.exit(1)
fichiers = sorted(
BACKUP_DIR.glob("mysql_backup_*.sql"),
key=lambda p: p.stat().st_mtime,
reverse=True
)
if not fichiers:
log("❌ Aucun fichier de sauvegarde trouvé")
sys.exit(1)
dernier = fichiers[0]
stat = dernier.stat()
date_modif = datetime.fromtimestamp(stat.st_mtime)
age = datetime.now() - date_modif
taille_mb = stat.st_size / 1024 / 1024
log(f"🔎 Dernière sauvegarde : {dernier.name}")
log(f"🔎 Date : {date_modif.strftime('%Y-%m-%d %H:%M:%S')}")
log(f"🔎 Taille : {taille_mb:.1f} Mo")
if age > timedelta(hours=MAX_AGE_HOURS):
log(f"❌ Sauvegarde trop ancienne : {age}")
sys.exit(1)
if taille_mb < MIN_SIZE_MB:
log(f"❌ Sauvegarde trop petite : {taille_mb:.1f} Mo")
sys.exit(1)
log("✅ Contrôle sauvegarde OK")
sys.exit(0)
if __name__ == "__main__":
main()