#!/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()