Minta Academy

Module 7 sur 10, développement, environ 3 heures

Python et automatisation

Écrire des petits programmes Python qui font le travail répétitif à ta place, puis les lancer tout seuls sur le serveur.

Dans ce module
  1. Pourquoi Python
  2. 1. Installer Python
  3. 2. Un environnement par projet
  4. 3. Les bases en 10 lignes
  5. 4. Script 1 : sauvegarder un dossier chaque jour
  6. 5. Script 2 : vérifier que tes sites répondent
  7. 6. Script 3 : calculer des totaux dans un fichier CSV
  8. 7. Lancer un script tout seul sur le serveur
  9. Bonnes pratiques
  10. Exercice
  11. Vérifie que tu sais

Pourquoi Python

Python se lit presque comme du français et sert partout : administration de serveurs, traitement de fichiers Excel ou CSV, données, intelligence artificielle. Un script de 20 lignes peut t'éviter une heure de travail chaque semaine.

1. Installer Python

  • Windows : télécharge Python 3.12 sur python.org. Pendant l'installation, coche « Add python.exe to PATH ».
  • Ubuntu : Python 3 est déjà installé. Ajoute les outils : sudo apt install -y python3-venv python3-pip

Vérifie :

python --version

Sur Linux, la commande s'appelle souvent python3.

2. Un environnement par projet

Un environnement virtuel garde les bibliothèques d'un projet séparées des autres.

mkdir automatisation && cd automatisation
python -m venv .venv

Active-le :

  • Windows (PowerShell) : .venv\Scripts\Activate.ps1
  • Linux ou macOS : source .venv/bin/activate

Installe une bibliothèque :

pip install requests

Ajoute .venv/ à ton .gitignore.

3. Les bases en 10 lignes

nom = "Awa"
age = 22
villes = ["Bamako", "Ségou", "Sikasso"]

print(f"I ni ce {nom}, tu as {age} ans.")
for ville in villes:
    if ville == "Ségou":
        print(ville, ": la cité des balanzans")
    else:
        print(ville)

4. Script 1 : sauvegarder un dossier chaque jour

sauvegarde.py crée une archive datée et garde seulement les 7 dernières :

import shutil
from datetime import datetime
from pathlib import Path

SOURCE = Path("/www/wwwroot/mondomaine.com")
DESTINATION = Path("/www/backup/sites")
A_GARDER = 7

DESTINATION.mkdir(parents=True, exist_ok=True)
nom = DESTINATION / f"site-{datetime.now():%Y-%m-%d}"
shutil.make_archive(str(nom), "zip", SOURCE)
print("Sauvegarde créée :", nom.with_suffix(".zip"))

archives = sorted(DESTINATION.glob("site-*.zip"))
for ancienne in archives[:-A_GARDER]:
    ancienne.unlink()
    print("Supprimée :", ancienne.name)

5. Script 2 : vérifier que tes sites répondent

surveille.py :

import requests

SITES = [
    "https://mintaservices.com",
    "https://ia.mintaservices.com",
]

for url in SITES:
    try:
        reponse = requests.get(url, timeout=15)
        etat = "OK" if reponse.status_code == 200 else f"PROBLÈME ({reponse.status_code})"
    except requests.RequestException as erreur:
        etat = f"INJOIGNABLE ({erreur.__class__.__name__})"
    print(f"{etat:30} {url}")

6. Script 3 : calculer des totaux dans un fichier CSV

Un fichier ventes.csv exporté depuis Excel :

date,produit,quantite,prix
2026-10-01,Savon,10,250
2026-10-01,Huile,3,1500
2026-10-02,Savon,4,250

ventes.py :

import csv
from collections import defaultdict

totaux = defaultdict(int)
with open("ventes.csv", encoding="utf-8") as fichier:
    for ligne in csv.DictReader(fichier):
        totaux[ligne["produit"]] += int(ligne["quantite"]) * int(ligne["prix"])

for produit, total in sorted(totaux.items(), key=lambda x: -x[1]):
    print(f"{produit:10} {total:>10,} FCFA".replace(",", " "))
print(f"{'TOTAL':10} {sum(totaux.values()):>10,} FCFA".replace(",", " "))

7. Lancer un script tout seul sur le serveur

Copie tes scripts dans /www/wwwroot/scripts, puis dans aaPanel : Cron → Add task

RéglageValeur
TypeShell Script
PériodeTous les jours, 2 h du matin
Scriptcd /www/wwwroot/scripts && /usr/bin/python3 sauvegarde.py >> sauvegarde.log 2>&1

Le >> sauvegarde.log 2>&1 garde la trace de chaque exécution, avec les erreurs.

Sans aaPanel, la même chose se fait avec crontab -e :

0 2 * * * cd /www/wwwroot/scripts && /usr/bin/python3 sauvegarde.py >> sauvegarde.log 2>&1

Bonnes pratiques

  • Les chemins, adresses et réglages en haut du script, en MAJUSCULES : on les change sans chercher dans le code.
  • Les mots de passe dans des variables d'environnement, jamais dans le script.
  • Un script qui supprime des fichiers se teste d'abord sur une copie.

Exercice

  1. Installe Python et crée un environnement virtuel.
  2. Fais tourner les trois scripts sur ton ordinateur (adapte les chemins).
  3. Ajoute à surveille.py une ligne qui écrit le résultat dans surveille.log avec la date.
  4. Programme surveille.py toutes les heures sur ton serveur avec aaPanel.

Vérifie que tu sais

  • À quoi sert un environnement virtuel ?
  • Où regardes-tu si une tâche Cron ne fait rien ?
  • Pourquoi tester un script de suppression sur une copie ?

Fais l'exercice avant de cocher : c'est lui qui t'apprend le plus.