Skip to content

Module 1 — Administration Linux essentielle pour le DevOps

Bonne lecture et bon apprentissage ! Junior TSAFACK – 12/09/2026 Temps de lecture estimé : 9 minutes


Tous les cours DevSecOps de ce site (CI/CD, OAuth, JWT…) supposent qu’on sait déjà naviguer dans un serveur Linux, lire ses journaux, gérer ses processus et diagnostiquer une panne. Ce module comble ce prérequis : il ne s’agit pas d’une liste exhaustive de commandes (les pages man existent déjà pour ça), mais d’une organisation par cas d’usage réel — ce que vous faites pour résoudre un problème, pas juste ce qu’une commande fait dans l’abstrait.

Toutes les commandes de ce module ont été vérifiées sur une vraie machine Debian 13 (le même environnement que le cours Installer Podman sur Debian 13).

Besoin Commande Exemple
Lister avec détails ls -la ls -la /var/log
Trouver un fichier par nom find find / -name "*.conf" -type f
Trouver par date de modification find -mtime find /var/log -mtime +7 (plus vieux que 7 jours)
Rechercher du texte dans des fichiers grep -r grep -rn "ERROR" /var/log/app/
Copier en préservant les métadonnées cp -a cp -a /etc/nginx /backup/nginx-$(date +%F)
Lier un fichier sans le dupliquer ln -s ln -s /opt/app/releases/v2 /opt/app/current
Voir l’espace disque par dossier du -sh `du -sh /var/log/*

Le pattern du -sh * | sort -rh | head (trouver ce qui prend le plus de place) revient si souvent en astreinte qu’il vaut la peine d’être mémorisé tel quel.

Besoin Commande
Voir tous les processus ps aux
Trier par consommation CPU ps -eo pid,comm,%cpu,%mem --sort=-%cpu
Vue interactive en temps réel top / htop
Tuer un processus proprement kill -TERM <pid> (laisse le temps de se fermer)
Tuer sans négociation kill -KILL <pid> (= kill -9, dernier recours)
Trouver quel processus écoute sur un port lsof -i :8080 ou ss -tlnp

La différence entre SIGTERM (-TERM) et SIGKILL (-9) compte en production : SIGTERM permet à l’application de fermer proprement ses connexions et vider ses buffers, SIGKILL l’arrête instantanément sans lui laisser cette chance — à réserver aux processus qui ne répondent plus à SIGTERM.

Besoin Commande
Espace disponible par partition df -h
Lister les points de montage mount | column -t
Monter un disque mount /dev/sdb1 /mnt/data
Vérifier l’intégrité d’un système de fichiers fsck /dev/sdb1 (à froid, disque démonté)
Voir l’utilisation des inodes (pas seulement l’espace) df -i

df -h peut mentir : un disque à 60 % d’espace utilisé peut être plein en inodes (souvent le cas avec des millions de petits fichiers, par exemple des sessions PHP ou des logs par requête) — df -i révèle ce cas.

Besoin Commande
Ports en écoute ss -tulpn
Tester la connectivité vers un hôte ping -c 4 exemple.com
Tracer le chemin réseau traceroute exemple.com
Résoudre un nom de domaine dig exemple.com ou nslookup exemple.com
Télécharger / tester une API curl -i https://api.exemple.com/health
Copier des fichiers vers un serveur distant scp fichier.tar.gz user@serveur:/chemin/

ss a remplacé netstat dans les distributions modernes (plus rapide, lit directement les structures noyau) — les deux existent encore, mais ss est la commande à privilégier aujourd’hui.

Besoin Commande
Ajouter un utilisateur useradd -m -s /bin/bash alice
Ajouter à un groupe usermod -aG docker alice
Changer les droits chmod 640 fichier.conf
Changer le propriétaire chown app:app /opt/app
Voir à quels groupes appartient un utilisateur groups alice ou id alice

Les permissions Linux se lisent en trois blocs (propriétaire / groupe / autres), chacun avec lecture (4) / écriture (2) / exécution (1) : 640 = propriétaire peut lire+écrire (6), groupe peut seulement lire (4), les autres n’ont aucun droit (0). C’est le réglage classique d’un fichier de configuration contenant des secrets.

Besoin Commande
Créer une archive compressée tar -czf archive.tar.gz dossier/
Extraire une archive tar -xzf archive.tar.gz
Lister le contenu sans extraire tar -tzf archive.tar.gz
Compresser un seul fichier gzip fichier.log
Besoin Commande
Journal système (systemd) journalctl -u nom-du-service -f
Suivre un fichier de log en direct tail -f /var/log/app/error.log
Filtrer un log sur une plage de dates journalctl --since "1 hour ago"
Voir les dernières connexions last
Voir les tentatives de connexion échouées lastb (nécessite les droits root)

Ce module de référence prépare le terrain : le Module 2 réutilise concrètement ces commandes à l’intérieur de vrais scripts d’automatisation — supervision, rotation de logs, sauvegardes, audit de sécurité — réellement exécutés sur une machine Debian, pas de simples extraits théoriques.

Module 2 : Scripting Bash pour l’automatisation