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()
|
||||
@@ -0,0 +1,21 @@
|
||||
#!/bin/bash
|
||||
# A mettre dans le dossier /home/debian/Gestion_sondes/scripts du VPS
|
||||
|
||||
set -e
|
||||
|
||||
BACKUP_DIR="/home/debian/backup"
|
||||
DATE=$(date +"%Y-%m-%d_%H-%M")
|
||||
FICHIER="mysql_backup_${DATE}.sql"
|
||||
|
||||
mkdir -p "$BACKUP_DIR"
|
||||
|
||||
echo "🔷 Démarrage dump MySQL : $(date)"
|
||||
echo "🔷 Destination locale : $BACKUP_DIR/$FICHIER"
|
||||
|
||||
mysqldump --all-databases > "$BACKUP_DIR/$FICHIER"
|
||||
|
||||
echo "✅ Dump OK : $BACKUP_DIR/$FICHIER"
|
||||
|
||||
python3 /home/debian/Gestion_sondes/scripts/check_backup_mysql.py
|
||||
|
||||
find "$BACKUP_DIR" -name "mysql_backup_*.sql" -type f -mtime +30 -delete
|
||||
93
scripts/test_mail.py
Normal file
93
scripts/test_mail.py
Normal file
@@ -0,0 +1,93 @@
|
||||
import smtplib
|
||||
from email.mime.text import MIMEText
|
||||
from email.mime.multipart import MIMEMultipart
|
||||
|
||||
SMTP_SERVER = "mail.mj91.fr" # ou ton serveur SMTP Synology / OVH
|
||||
SMTP_PORT = 587 # 587 avec STARTTLS, ou 465 en SSL
|
||||
SMTP_USER = "services" # adresse expéditrice
|
||||
SMTP_PASSWORD ="84Bf&c$$1Mx953s8!L2"
|
||||
import smtplib
|
||||
from email.mime.text import MIMEText
|
||||
from email.mime.multipart import MIMEMultipart
|
||||
|
||||
FROM_EMAIL = "services@domo91.fr"
|
||||
TO_EMAIL = "robots@domo91.fr"
|
||||
|
||||
msg = MIMEMultipart()
|
||||
msg["From"] = FROM_EMAIL
|
||||
msg["To"] = TO_EMAIL
|
||||
msg["Subject"] = "Test mail depuis la VM"
|
||||
|
||||
body = """
|
||||
Bonjour,
|
||||
|
||||
Ceci est un test d'envoi de mail depuis la VM en SSH.
|
||||
|
||||
Si tu reçois ce message, l'envoi SMTP fonctionne.
|
||||
|
||||
Michel
|
||||
"""
|
||||
|
||||
msg.attach(MIMEText(body, "plain"))
|
||||
|
||||
try:
|
||||
print("Connexion au serveur SMTP...")
|
||||
server = smtplib.SMTP(SMTP_SERVER, SMTP_PORT, timeout=20)
|
||||
server.set_debuglevel(1)
|
||||
|
||||
print("Démarrage TLS...")
|
||||
server.starttls()
|
||||
|
||||
print("Authentification...")
|
||||
server.login(SMTP_USER, SMTP_PASSWORD)
|
||||
|
||||
print("Envoi du message...")
|
||||
server.sendmail(FROM_EMAIL, TO_EMAIL, msg.as_string())
|
||||
|
||||
server.quit()
|
||||
print("✅ Mail envoyé avec succès")
|
||||
|
||||
except Exception as e:
|
||||
print("❌ Erreur lors de l'envoi :")
|
||||
print(e)
|
||||
|
||||
FROM_EMAIL = "services@domo91.fr"
|
||||
TO_EMAIL = "robots@domo91.fr"
|
||||
|
||||
msg = MIMEMultipart()
|
||||
msg["From"] = FROM_EMAIL
|
||||
msg["To"] = TO_EMAIL
|
||||
msg["Subject"] = "Test mail depuis la VM"
|
||||
|
||||
body = """
|
||||
Bonjour,
|
||||
|
||||
Ceci est un test d'envoi de mail depuis la VM en SSH.
|
||||
|
||||
Si tu reçois ce message, l'envoi SMTP fonctionne.
|
||||
|
||||
Michel
|
||||
"""
|
||||
|
||||
msg.attach(MIMEText(body, "plain"))
|
||||
|
||||
try:
|
||||
print("Connexion au serveur SMTP...")
|
||||
server = smtplib.SMTP(SMTP_SERVER, SMTP_PORT, timeout=20)
|
||||
server.set_debuglevel(1)
|
||||
|
||||
print("Démarrage TLS...")
|
||||
server.starttls()
|
||||
|
||||
print("Authentification...")
|
||||
server.login(SMTP_USER, SMTP_PASSWORD)
|
||||
|
||||
print("Envoi du message...")
|
||||
server.sendmail(FROM_EMAIL, TO_EMAIL, msg.as_string())
|
||||
|
||||
server.quit()
|
||||
print("✅ Mail envoyé avec succès")
|
||||
|
||||
except Exception as e:
|
||||
print("❌ Erreur lors de l'envoi :")
|
||||
print(e)
|
||||
Reference in New Issue
Block a user