Refonte sauvegarde MariaDB NAS => VPS2
This commit is contained in:
@@ -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()
|
||||
Reference in New Issue
Block a user