• Что бы вступить в ряды "Принятый кодер" Вам нужно:
    Написать 10 полезных сообщений или тем и Получить 10 симпатий.
    Для того кто не хочет терять время,может пожертвовать средства для поддержки сервеса, и вступить в ряды VIP на месяц, дополнительная информация в лс.

  • Пользаватели которые будут спамить, уходят в бан без предупреждения. Спам сообщения определяется администрацией и модератором.

  • Гость, Что бы Вы хотели увидеть на нашем Форуме? Изложить свои идеи и пожелания по улучшению форума Вы можете поделиться с нами здесь. ----> Перейдите сюда
  • Все пользователи не прошедшие проверку электронной почты будут заблокированы. Все вопросы с разблокировкой обращайтесь по адресу электронной почте : info@guardianelinks.com . Не пришло сообщение о проверке или о сбросе также сообщите нам.

Automatiser l'Envoi de Rapports Système au SysAdmin Chaque Minute avec Python & Cron

Lomanu4 Оффлайн

Lomanu4

Команда форума
Администратор
Регистрация
1 Мар 2015
Сообщения
1,481
Баллы
155
Introduction

Dans cet article, nous allons apprendre à automatiser un script Python qui surveille les performances d'un serveur et envoie un rapport par email toutes les minutes. Ce rapport comprend :
L'utilisation du processeur (CPU)
La consommation de mémoire (RAM)
L'espace disque disponible
Et même l'adresse IP publique du serveur

C'est un excellent exercice de sysadmin et un outil utile en production.
Prérequis
Avant de commencer, assure-toi d'avoir :
Un serveur Linux ou une machine virtuelle
Python 3 installé (python3 --version)
Un accès à crontab
Un compte email pour l'envoi (ex. : Gmail)

Étape 1 : Installer les dépendances

Ouvre ton terminal et exécute :
pip3 install psutil requests
Ces bibliothèques permettent de récupérer les stats système (psutil) et de connaître l'IP publique (requests).

Étape 2 : Le Script Python
Crée un fichier server_report.py :
import psutil
import smtplib
import socket
import requests
from email.mime.text import MIMEText
from datetime import datetime

Configuration


TO_EMAIL = "sysadmin_aws_cdkin4@mtech-rdc.org"
FROM_EMAIL = "your_email@example.com" # Remplace avec ton email
EMAIL_PASSWORD = "your_password" # Mot de passe d'application si Gmail
SMTP_SERVER = "smtp.gmail.com"
SMTP_PORT = 587
def get_server_stats():
mem = psutil.virtual_memory()
disk = psutil.disk_usage('/')
cpu = psutil.cpu_percent(interval=1)
hostname = socket.gethostname()
local_ip = socket.gethostbyname(hostname)
public_ip = requests.get("

Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

)
return f"""
RAPPORT DU SERVEUR - {datetime.now().strftime("%Y-%m-%d %H:%M:%S")}
IP publique : {public_ip}
IP locale : {local_ip}
Hostname : {hostname}
CPU utilisé : {cpu} %
RAM utilisée : {mem.percent} %
Disque utilisé : {disk.percent} %
Espace libre : {round(disk.free / (1024**3), 2)} Go
-- Fin du rapport --
"""
def send_email(subject, body):
msg = MIMEText(body)
msg['Subject'] = subject
msg['From'] = FROM_EMAIL
msg['To'] = TO_EMAIL
try:
server = smtplib.SMTP(SMTP_SERVER, SMTP_PORT)
server.starttls()
server.login(FROM_EMAIL, EMAIL_PASSWORD)
server.send_message(msg)
server.quit()
print(" Rapport envoyé.")
except Exception as e:
print(f" Erreur : {e}")
if name == "main":
stats = get_server_stats()
send_email(" Rapport Automatique du Serveur", stats)
Astuce sécurité : utiliser un mot de passe d'application
Si tu utilises Gmail, crée un mot de passe d'application (dans tes paramètres de sécurité) pour ne pas exposer ton mot de passe principal.
Étape 3 : Tester le script
python3 server_report.py
Tu devrais recevoir un email avec les stats du serveur dans ta boîte de réception.
Étape 4 : Automatiser avec cron
Ouvre l'éditeur de tâches planifiées :
crontab -e
Ajoute cette ligne pour exécuter le script chaque minute :

  • * * * * /usr/bin/python3 /chemin/vers/server_report.py

⚠ Vérifie le chemin exact de Python avec which python3
⚠ Mets le chemin complet de ton script

Étape 5 : Visualiser les logs en temps réel
Si tu veux voir les sorties du script (comme les erreurs ou confirmations) :
tail -f /var/log/syslog # ou /var/log/cron.log selon ta distro
Tu peux aussi rediriger la sortie du script vers un fichier de log

  • * * * * /usr/bin/python3 /chemin/vers/server_report.py >> /home/ismael/logs/server.log 2>&1

Conclusion
En combinant Python et Cron, tu peux créer un outil de monitoring système minimaliste, mais puissant. Tu es maintenant capable de surveiller l'état de n'importe quel serveur et d'envoyer des alertes automatiquement à ton SysAdmin.
Cette solution est idéale pour
Les petits projets auto-hébergés
Le monitoring d'urgence
L'apprentissage de l'administration système


Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

 
Вверх Снизу