Linux pour le développeur : administrer le serveur de son application

Linux pour le développeur est un cours de niveau débutant de 5 leçons (environ 1 h 36), avec 15 exercices et 15 questions de quiz. Prérequis : Terminal et ligne de commande. Le cours demande un environnement de projet complet, prévu dans une phase ultérieure de la plateforme.

  • Cloud et DevOps
  • Débutant
  • 5 leçons
  • 1 h 36
  • 15 exercices
  • Environnement de projet complet (phase 2)

Le cours en bref

Ce cours donne au développeur les bases d'administration Linux nécessaires pour faire tourner une application sur un serveur. Vous gérerez utilisateurs, groupes et droits, ferez de votre application un service systemd, diagnostiquerez le réseau et sécuriserez l'accès SSH, lirez les journaux et traiterez un disque plein, puis automatiserez sauvegardes et tâches planifiées. Les exercices se font dans un vrai terminal Linux.

Ce que tu sauras faire

  • Gérer utilisateurs, groupes, propriétaires, umask et dossiers partagés
  • Observer des processus, leur envoyer des signaux et écrire une unité systemd
  • Diagnostiquer ports, DNS et connexions HTTP, configurer un pare-feu et l'accès SSH par clé
  • Lire les journaux avec journalctl, configurer logrotate et résoudre un disque plein
  • Écrire un script de sauvegarde idempotent et le planifier avec cron ou un timer systemd

Programme des 5 leçons

    • Créer des utilisateurs et des groupes et comprendre sudo
    • Attribuer propriétaire et groupe avec chown et maîtriser umask
    • Préparer un dossier partagé et installer des logiciels avec apt

    Utilisateurs et groupessudo et rootPropriétaire, groupe, umask, setgidGestion des paquets apt

  1. 02

    Processus, signaux et services systemd

    20 min
    • Observer les processus et arrêter proprement un programme
    • Piloter un service avec systemctl
    • Écrire une unité systemd pour faire tourner une application

    Processus et PIDSignauxServices systemdFichier d'unité

  2. 03

    Réseau, ports, pare-feu et SSH

    20 min
    • Diagnostiquer adresses, ports et résolution DNS
    • Ouvrir uniquement les ports nécessaires avec un pare-feu
    • Se connecter à un serveur avec une clé SSH et un fichier ~/.ssh/config

    Interfaces et routesPorts et écouteRésolution de nomsPare-feu ufwSSH par clé

  3. 04

    Journaux et espace disque

    18 min
    • Lire les journaux d'un service avec journalctl et dans /var/log
    • Mettre en place la rotation des fichiers de log avec logrotate
    • Diagnostiquer un disque plein avec df et du

    Journal systemdFichiers de /var/logRotation des journauxEspace disque

  4. 05

    Scripts d'administration et tâches planifiées

    20 min
    • Écrire un script de sauvegarde robuste et idempotent
    • Planifier une tâche avec cron ou un timer systemd
    • Archiver et synchroniser des fichiers avec tar et rsync

    Sauvegarde et rétentionPlanification cronTimers systemdIdempotence

Projet final

Mettre en service une application sur un serveur Linux

Sur une VM Linux (Debian ou Ubuntu), installez une petite application web de votre parcours et rendez-la exploitable : compte de service dédié, unité systemd avec redémarrage automatique, écoute sur 127.0.0.1 derrière un serveur web, pare-feu limité aux ports 22, 80 et 443, accès SSH par clé uniquement, rotation des journaux et sauvegarde quotidienne planifiée avec test de restauration.

Livrables

  • Les fichiers d'unité (.service et .timer), la configuration logrotate et le script de sauvegarde
  • La sortie de `sudo ss -tlnp`, `sudo ufw status verbose` et `systemctl status` de l'application
  • Un runbook README : démarrer, arrêter, lire les journaux, restaurer une sauvegarde
  • La preuve d'une restauration réussie (commande et sortie de diff)

Critères d'évaluation

  • L'application tourne sous un compte de service sans shell et redémarre seule après un arrêt brutal
  • Seuls les ports 22, 80 et 443 sont ouverts ; l'application et la base écoutent sur 127.0.0.1
  • La connexion SSH par mot de passe et la connexion directe de root sont désactivées
  • Les journaux sont tournés et la sauvegarde est planifiée, idempotente et verrouillée
  • La restauration est documentée et a été testée

Questions fréquentes

Faut-il déjà connaître le terminal ?

Oui : ce cours prolonge le cours Terminal et ligne de commande (F2). Navigation, grep, pipes et scripts bash de base y sont supposés acquis.

Quelle distribution Linux est utilisée ?

Les exemples s'appuient sur Debian et Ubuntu, très répandues sur les serveurs. Les notions (systemd, journalctl, SSH, cron) sont les mêmes ailleurs ; seul le gestionnaire de paquets change, par exemple dnf sur Fedora.

Tous les exercices fonctionnent-ils dans le terminal en ligne ?

La plupart, oui. Les exercices qui demandent systemd (services, timers) sont à faire sur une machine où systemd est actif : une VM, un serveur de test ou WSL avec systemd activé. La consigne le précise.

Ce cours remplace-t-il une formation d'administrateur système ?

Non. Il couvre ce qu'un développeur doit savoir pour déployer et maintenir son application. La haute disponibilité, la supervision avancée ou la sécurité approfondie relèvent d'autres cours.

Ce cours, raconté pour ton métier

Dis ce que tu veux savoir faire : « Linux pour le développeur » prend sa place dans ton parcours, avec des exemples de ton secteur. Les notions restent celles du cours.

L'aperçu est gratuit, et les cours se suivent un par un sans payer. Le parcours ne contient que des leçons du catalogue.