Envoie des performances d'un système linux par mail avec python et crontab. Tuto rapide!

Automatiser la surveillance de la charge d’un système est crucial, notamment sur les serveurs. Dans ce tutoriel, nous allons créer un script Python pour collecter des informations système (CPU, RAM, disque), les formater, et les envoyer par email automatiquement à intervalles réguliers grâce à crontab. #Étape 1 : Le script Python import os import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from monitor import get_system_performance # Informations de l'expéditeur smtp_server = "smtp.gmail.com" smtp_port = 587 sender_email = os.getenv("SENDER_EMAIL") app_password = os.getenv("APP_PASSWORD") # Informations du destinataire receiver_email = "sysadmin_entreprise4@mtech.org" subject = "Performances système" # Récupérer les performances système system_performance = get_system_performance() # Création du message msg = MIMEMultipart() msg["From"] = sender_email msg["To"] = receiver_email msg["Subject"] = subject msg.attach(MIMEText(system_performance, "plain")) try: # Connexion au serveur SMTP server = smtplib.SMTP(smtp_server, smtp_port) server.starttls() # Sécurisation de la connexion server.login(sender_email, app_password) # Envoi de l'e-mail server.send_message(msg) print("E-mail envoyé avec succès !") except Exception as e: print("Erreur lors de l'envoi de l'e-mail :", e) finally: server.quit() Étape 2 : Rendre le script exécutable chmod +x /home/utilisateur/rapport_sys.py Étape 3 : Automatiser avec crontab crontab -e Ajoutez la ligne suivante pour exécuter le script toutes les heures: SENDER_EMAIL="votre_email@gmail.com" APP_PASSWORD="votre_mot_de_passe_application" 0 */1 * * * /usr/bin/python3 /home/utilisateur/rapport_sys.py >> /home/utilisateur/cron.log 2>&1 Etape 3: Tester manuellement python3 /home/utilisateur/rapport_sys.py CONCLUSION Grâce à Python et crontab, vous avez désormais un système autonome de surveillance qui vous informe par mail de l’état de votre machine Linux. C’est une solution légère, personnalisable, et idéale pour les serveurs personnels ou de production. A la prochaine pour un nouveau tuto rapide!

May 15, 2025 - 02:32
 0
Envoie des performances d'un système linux par mail avec python et crontab. Tuto rapide!

Automatiser la surveillance de la charge d’un système est crucial, notamment sur les serveurs. Dans ce tutoriel, nous allons créer un script Python pour collecter des informations système (CPU, RAM, disque), les formater, et les envoyer par email automatiquement à intervalles réguliers grâce à crontab.

#Étape 1 : Le script Python

import os
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from monitor import get_system_performance

# Informations de l'expéditeur
smtp_server = "smtp.gmail.com"
smtp_port = 587
sender_email = os.getenv("SENDER_EMAIL")  
app_password = os.getenv("APP_PASSWORD")  

# Informations du destinataire
receiver_email = "sysadmin_entreprise4@mtech.org"
subject = "Performances système"

# Récupérer les performances système
system_performance = get_system_performance()

# Création du message
msg = MIMEMultipart()
msg["From"] = sender_email
msg["To"] = receiver_email
msg["Subject"] = subject
msg.attach(MIMEText(system_performance, "plain"))

try:
    # Connexion au serveur SMTP
    server = smtplib.SMTP(smtp_server, smtp_port)
    server.starttls()  # Sécurisation de la connexion
    server.login(sender_email, app_password)

    # Envoi de l'e-mail
    server.send_message(msg)
    print("E-mail envoyé avec succès !")

except Exception as e:
    print("Erreur lors de l'envoi de l'e-mail :", e)

finally:
    server.quit()

Étape 2 : Rendre le script exécutable


chmod +x /home/utilisateur/rapport_sys.py

Étape 3 : Automatiser avec crontab

crontab -e
Ajoutez la ligne suivante pour exécuter le script toutes les heures:

SENDER_EMAIL="votre_email@gmail.com"
APP_PASSWORD="votre_mot_de_passe_application"

0 */1 * * * /usr/bin/python3 /home/utilisateur/rapport_sys.py >> /home/utilisateur/cron.log 2>&1

Etape 3: Tester manuellement

python3 /home/utilisateur/rapport_sys.py

CONCLUSION

Grâce à Python et crontab, vous avez désormais un système autonome de surveillance qui vous informe par mail de l’état de votre machine Linux. C’est une solution légère, personnalisable, et idéale pour les serveurs personnels ou de production. A la prochaine pour un nouveau tuto rapide!