Scripting avec Bash et PowerShell

Skip to content

Ceci est un texte traduit automatiquement qui peut contenir des erreurs !

Si vous avez effectué la même tâche pour la troisième fois, il est temps de l’automatiser. Le scripting consiste à laisser la machine effectuer le travail fastidieux à votre place, plus rapidement et sans rien oublier.

Pourquoi automatiser ?

Certaines tâches dans l’exploitation informatique sont effectuées fréquemment :

  • Mettre à jour les serveurs
  • Créer des utilisateurs
  • Effectuer des sauvegardes
  • Redémarrer les services après une mise à jour
  • Vérifier que les services fonctionnent

Effectuer ces tâches manuellement à chaque fois prend du temps, et il est facile d’oublier une étape. Un script fait la même chose à chaque fois, sans se plaindre.

Bash : Scripting sous Linux

Bash est le shell (terminal) dans la plupart des distributions Linux, et il peut également exécuter des scripts. Un script Bash est simplement un fichier texte contenant des commandes qui sont exécutées séquentiellement.

Votre premier script

Créez un fichier nommé oppdater.sh :

#!/bin/bash
# Met à jour la liste des paquets et installe les mises à jour
echo "Met à jour le système..."
sudo apt update
sudo apt upgrade -y
echo "Terminé !"

Rendez le fichier exécutable et exécutez-le :

chmod +x oppdater.sh
./oppdater.sh
# Ceci rend le script exécutable.
# Ceci exécute le script.

#!/bin/bash

La première ligne s’appelle un shebang. Elle indique au système d’exploitation que le fichier doit être exécuté avec Bash. Sans cela, le système ne sait pas quel programme doit interpréter le script.

Variables et entrées

#!/bin/bash
BRUKERNAVN=$1

if [ -z "$BRUKERNAVN" ]; then
    echo "Utilisation: ./lag_bruker.sh <brukernavn>"
    exit 1
fi

sudo adduser "$BRUKERNAVN"
sudo usermod -aG sudo "$BRUKERNAVN"
echo "Utilisateur $BRUKERNAVN créé avec accès sudo."

Voici le script qui prend un nom d’utilisateur en argument ($1 est le premier argument). Si vous exécutez ./lag_bruker.sh ola, cela créera l’utilisateur ola et lui donnera l’accès sudo.

Concepts Bash utiles

Concept Exemple Ce que ça fait
Variable NOM="Ola" Stocke une valeur
Argument $1, $2 Entrée depuis la ligne de commande
Si-vérification if [ -f "fil.txt" ]; then Vérifie si un fichier existe
Pour-boucle for f in *.log; do Faire quelque chose pour chaque fichier correspondant
Pipe cat logg.txt \| grep "ERROR" Envoie la sortie d’une commande à une autre

PowerShell : Scripting sous Windows

PowerShell est la réponse de Windows à Bash, mais il est plus orienté objet. Il travaille avec des objets plutôt qu’avec du simple texte, ce qui le rend puissant pour l’administration des systèmes Windows.

Exemple : Vérifier l’espace disque

# Vérifiez l'espace disque disponible
Get-PSDrive -PSProvider FileSystem | Select-Object Name, 
    @{Name="Brukt (GB)"; Expression={[math]::Round($_.Used / 1GB, 2)}},
    @{Name="Ledig (GB)"; Expression={[math]::Round($_.Free / 1GB, 2)}}

Exemple : Installer des logiciels avec Winget

# Installer plusieurs programmes à la fois
winget install Mozilla.Firefox
winget install Microsoft.VisualStudioCode
winget install Git.Git
winget install Python.Python.3.12

C’est beaucoup plus rapide que de télécharger et d’installer tout manuellement. Vous pouvez enregistrer la liste dans un script et l’exécuter à chaque fois que vous configurez une nouvelle machine.

Easy Exercice 1 - Créer un script de mise à jour

Écrivez un script Bash qui :

  1. Met à jour la liste des paquets
  2. Installe toutes les mises à jour disponibles
  3. Redémarre Nginx (ou un autre service que vous avez en cours d’exécution)
  4. Affiche un message une fois terminé

Exécutez-le sur l’une de vos VM et vérifiez qu’il fonctionne.

Easy Exercice 2 - Automatiser la configuration d’une machine

Créez un script PowerShell (.ps1) ou une simple liste de commandes winget install pour tous les programmes dont vous avez besoin sur un nouvel ordinateur. Réfléchissez à :

  • Quels programmes installez-vous toujours ?
  • Pouvez-vous également configurer certains paramètres avec le script ?

La prochaine fois que vous configurerez une machine, exécutez simplement le script au lieu de passer une heure à l’installation manuelle.

Résumé

  • Si vous faites quelque chose de plus de deux fois, envisagez de l’automatiser
  • Bash (Linux) et PowerShell (Windows) sont les outils les plus courants pour le scripting
  • Les scripts Bash sont des fichiers texte contenant des commandes qui sont exécutées séquentiellement
  • PowerShell travaille avec des objets et est puissant pour l’administration Windows
  • Les variables, les arguments, les vérifications if et les boucles sont les principaux éléments constitutifs