semaine 15 - cas d'automatisation
Les grands cas : le boss final
Tout ce que vous avez appris converge ici : scripts, transitions, regex, crontab et daemons s'assemblent en deux automatisations dignes de la production.
Cas 1 : la sauvegarde
Une sauvegarde rotative sur 7 jours, chaque nuit, toute seule.
Cas 2 : les estampes de sécurité
Un système de détection d'incidents qui surveille logs et intégrité.
rappel
Les principes d'un script sous crontab
- Enlever l'interactivité et tout ce qui est verbeux : personne ne répondra aux questions à 3 h du matin.
- Chemin absolu du script dans le crontab.
- Chemins absolus DANS le script : cron ne connaît pas votre répertoire courant.
- Avoir les permissions sur les répertoires touchés (et le script en chmod +x).
La cause numéro 1 des « ça marche à la main mais pas dans cron » : un chemin relatif ou une permission manquante.
cas 1 - echauffement
Le fichier daté : l'échauffement
Un script qui crée un fichier dont le NOM contient la date - la brique de base de toute rotation :
#!/bin/bash
declare -A mois=([Jan]=janvier [Feb]=fevrier [Mar]=mars [Apr]=avril ...)
jourNumerique=$(date | sed -E 's/[A-Za-z]+ ([A-Za-z]+) [0-9][0-9] .*/\1/g')
moisEnLettre=${mois[$jourNumerique]}
extension=$moisEnLettre-$(date +%d-%Hh%M)
date > /home/prenom/etampes/etampe-${extension}.txt
$ crontab -e
*/2 * * * * /home/prenom/script/etampe.sh
Remarquez le sed de la semaine 14 qui découpe la date, et le tableau associatif qui la traduit en français.
cas 1 - la sauvegarde
La sauvegarde rotative 7 jours
#!/bin/bash
cd /var/www
tar czf /home/prenom/sauvegarde/monsite.tgz monsite.com
cd /home/prenom/sauvegarde
aujourdhui=$(date +%Y-%m-%d)
ilYaSeptJours=$(date --date '- 7 day' +%Y-%m-%d)
mv monsite.tgz monsite.$aujourdhui.tgz
fichierAEffacer=monsite.$ilYaSeptJours.tgz
if [ -e $fichierAEffacer ]; then
rm $fichierAEffacer
fi
$ crontab -e
0 3 * * * /home/prenom/script/sauvegarde.sh
cas 1 - decortique
Pourquoi ce script est malin
date +%Y-%m-%d
Le format 2026-08-09 : triable, sans espaces, parfait pour les noms de fichiers.
date --date '- 7 day'
La date d'il y a une semaine, calculée par date elle-même. Aucune arithmétique à faire !
if [ -e fichier ]
On vérifie l'existence avant d'effacer : les 6 premiers jours, il n'y a rien à effacer.
Résultat : en régime permanent, toujours exactement 7 sauvegardes sur le disque. Ni plus (le disque déborde), ni moins (l'historique fond).
cas 2 - vue d'ensemble
Les estampes de sécurité : 4 volets
01 ESTAMPE
Détection d'incidents : produire des fichiers d'estampe.
02 AUTOMATE
Un daemon surveille en permanence et produit les estampes.
03 BACKUP
Automatisation de la sauvegarde (cas 1 !).
04 EXTERNE
Externalisation des sauvegardes hors du serveur.
C'est la charpente du Projet Automatisations : chaque volet s'appuie sur les semaines 12 à 14.
cas 2 - analyse des logs
Quoi surveiller dans les journaux ?
Failed password for root from 95.58.255.62 port 38980 ssh2
Failed password for invalid user asterisk from 91.205.189.15
Did not receive identification string from 70.91.222.121
"POST /wordpress/xmlrpc.php HTTP/1.1" 302
GET /index.php? HTTP/1.0
Chaque motif se détecte avec un grep bien construit (semaine 14) sur le bon journal.
cas 2 - l'estampe
Le fichier d'estampe : clair et étiqueté
*************************************************
Service : sshd
Anomalie : failed password from root
Date : Aug 18 11:00:57
IP : 95.58.255.62
*************************************************
- Un répertoire /var/surveillance/, un fichier daté par estampe.
- Date, heure, minute et seconde de l'incident clairement identifiées.
- Tout en français étiqueté : jamais un chiffre seul, toujours dire ce qu'il indique.
cas 2 - integrite
L'intégrité des fichiers : le md5 vigile
Un pirate modifie souvent les fichiers sensibles. On compare leur empreinte à celle attendue :
$ md5sum /etc/passwd
2b00042f7481c7b056c4b410d28f33cf /etc/passwd
-------------------------------------------------
Detection d'un changement de signature : mot de passe
minute : 2026-09-26 22h31
md5 avant : 2b00042f7481...
md5 apres : 9e107d9d372b...
taille avant : 34 kb
taille apres : 0 kb
journal : 2 dernieres lignes collees ici
-------------------------------------------------
cas 2 - automatisation
De manuel à automatique
- Version 1 : le script d'estampes se lance à la main, il génère ses fichiers dans /var/surveillance/.
- Version 2 : un daemon systemd (semaine 13 !) surveille les journaux en permanence.
- Rétroaction : l'administrateur reçoit le compte des estampes de chaque sorte (page web mise à jour, par exemple).
- La sauvegarde tourne en tâche planifiée crontab, et s'externalise hors du serveur.
Vous venez d'esquisser un mini SIEM artisanal : détection, journalisation, alerte, sauvegarde. C'est exactement le métier des outils pro comme fail2ban, Wazuh ou Splunk.
le mot de la fin
Le cours en une image
Module 1
Un VPS sécurisé qui sert vos sites en HTTPS.
Module 2
Un intranet Windows Server qui distribue adresses et identités.
Module 3
Des serveurs d'entreprise variés, installés et améliorés.
Module 4
Des conteneurs, des scripts et des automatisations qui veillent sur tout ça.
Le laboratoire de la semaine 15 vous attend pour assembler le grand final. Bonne route, administratrices et administrateurs de serveurs !