Skripting mit Bash und PowerShell

Skip to content

Dies ist ein maschinell übersetzter Text, der Fehler enthalten kann!

Wenn Sie die gleiche Aufgabe zum dritten Mal erledigt haben, ist es an der Zeit, sie zu automatisieren. Skripting bedeutet, die Maschine die langweilige Arbeit für Sie erledigen zu lassen, schneller und ohne etwas zu vergessen.

Warum automatisieren?

Einige Aufgaben im IT-Betrieb werden oft durchgeführt:

  • Server aktualisieren
  • Benutzer erstellen
  • Backup erstellen
  • Dienste nach einem Update neu starten
  • Überprüfen, ob Dienste laufen

Diese manuell jedes Mal durchzuführen, kostet Zeit und es ist leicht, einen Schritt zu vergessen. Ein Skript macht jedes Mal dasselbe, ohne sich zu beschweren.

Bash: Skripting in Linux

Bash ist die Shell (das Terminal) in den meisten Linux-Distributionen und kann auch Skripte ausführen. Ein Bash-Skript ist einfach eine Textdatei mit Befehlen, die nacheinander ausgeführt werden.

Dein erstes Skript

Erstelle eine Datei namens oppdater.sh:

#!/bin/bash
# Aktualisiere die Paketliste und installiere Updates
echo "Aktualisiere das System..."
sudo apt update
sudo apt upgrade -y
echo "Fertig!"

Mache die Datei ausführbar und führe sie aus:

chmod +x oppdater.sh
./oppdater.sh
# Erstellt die ausführbare Datei und führt sie aus.

#!/bin/bash

Die erste Zeile wird Shebang genannt. Sie teilt dem Betriebssystem mit, dass die Datei mit Bash ausgeführt werden soll. Ohne diese weiß das System nicht, welches Programm das Skript interpretieren soll.

Variablen und Eingaben

#!/bin/bash
BRUKERNAVN=$1

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

sudo adduser "$BRUKERNAVN"
sudo usermod -aG sudo "$BRUKERNAVN"
echo "Benutzer $BRUKERNAVN mit sudo-Zugriff erstellt." # Benutzer $BRUKERNAVN mit sudo-Zugriff erstellt.

Hier nimmt das Skript einen Benutzernamen als Argument entgegen ($1 ist das erste Argument). Wenn Sie ./lag_bruker.sh ola ausführen, wird der Benutzer ola erstellt und ihm Sudo-Zugriff gewährt.

Nützliche Bash-Konzepte

Konzept Beispiel Was es tut
Variable NAME="Ola" Speichert einen Wert
Argument $1, $2 Eingabe von der Kommandozeile
If-Prüfung if [ -f "datei.txt" ]; then Überprüft, ob eine Datei existiert
For-Schleife for f in *.log; do Führt etwas für jede übereinstimmende Datei aus
Pipe cat logg.txt \| grep "ERROR" Leitet die Ausgabe eines Befehls an einen anderen weiter

PowerShell: Skripting in Windows

PowerShell ist Windows’ Antwort auf Bash, aber es ist objektorientierter. Es arbeitet mit Objekten anstelle von reinem Text, was es leistungsstark für die Verwaltung von Windows-Systemen macht.

Beispiel: Festplattenspeicher überprüfen

For å sjekke hvor mye diskplass du har igjen, kan du bruke følgende kommando i terminalen:

df -h

Denne kommandoen viser diskplassbruken for alle monterte filsystemer i et lesbart format (f.eks. GB, MB).

Du kan også bruke du kommandoen for å se hvor mye plass hver mappe og fil bruker:

du -h --max-depth=1

Denne kommandoen viser diskplassbruken for hver mappe i gjeldende katalog, ned til en dybde på 1. --max-depth=1 begrenser søket til kun å vise mapper i den gjeldende katalogen. Uten denne parameteren vil den vise diskplassbruken for alle filer og mapper i hele filsystemet, noe som kan ta lang tid.

# Überprüfen Sie den verfügbaren Speicherplatz
Get-PSDrive -PSProvider FileSystem | Select-Object Name, 
    @{Name="Verwendet (GB)"; Expression={[math]::Round($_.Used / 1GB, 2)}},
    @{Name="Frei (GB)"; Expression={[math]::Round($_.Free / 1GB, 2)}}

Beispiel: Software mit Winget installieren

Winget er et kommandolinjeverktøy som gjør det enkelt å finne, installere, oppgradere og avinstallere programvare på Windows 10 og 11. Det er en pakkehåndterer, omtrent som apt på Debian/Ubuntu eller brew på macOS.

Fordeler med å bruke Winget:

  • Sentralisert administrasjon: Administrer all programvare fra kommandolinjen.
  • Automatisering: Automatiser installasjon og oppgradering av programvare i skript.
  • Enkelhet: Enkelt å bruke, selv for komplekse installasjoner.

Installere Winget:

Winget er vanligvis forhåndsinstallert på Windows 10 (versjon 1709 eller nyere) og Windows 11. Hvis det ikke er installert, kan du laste det ned fra https://github.com/microsoft/winget.

Eksempel på bruk:

For å søke etter en applikasjon, bruk kommandoen winget search <appnavn>. For eksempel:

winget search VLC

For å installere en applikasjon, bruk kommandoen winget install <appnavn>. For eksempel:

winget install VLC

For å avinstallere en applikasjon, bruk kommandoen winget uninstall <appnavn>. For eksempel:

winget uninstall VLC

Du kan finne mer informasjon om Winget på https://learn.microsoft.com/en-us/windows/package-manager/winget/.

# Installer mehrere Programme gleichzeitig
winget install Mozilla.Firefox
winget install Microsoft.VisualStudioCode
winget install Git.Git
winget install Python.Python.3.12

Dies ist viel schneller, als alles manuell herunterzuladen und zu installieren. Sie können die Liste in einem Skript speichern und es jedes Mal ausführen, wenn Sie eine neue Maschine einrichten.

Easy Aufgabe 1 – Erstellen Sie ein Aktualisierungsskript

Schreiben Sie ein Bash-Skript, das:

  1. Die Paketliste aktualisiert
  2. Alle verfügbaren Updates installiert
  3. Nginx (oder einen anderen laufenden Dienst) neu startet
  4. Eine Meldung ausgibt, wenn es fertig ist

Führen Sie es auf einer Ihrer VMs aus und prüfen Sie, ob es funktioniert.

Easy Aufgabe 2 - Automatisierung der Maschinenkonfiguration

Erstelle ein PowerShell-Skript (.ps1) oder eine einfache Liste mit winget install-Befehlen für alle Programme, die du auf einem neuen PC benötigst. Denke darüber nach:

  • Welche Programme installierst du immer?
  • Kannst du auch einige Einstellungen mit dem Skript konfigurieren?

Wenn du das nächste Mal eine Maschine einrichtest, führe einfach das Skript aus, anstatt eine Stunde mit der manuellen Installation zu verbringen.

Zusammenfassung

  • Wenn Sie etwas öfter als zweimal tun, sollten Sie in Erwägung ziehen, es zu automatisieren.
  • Bash (Linux) und PowerShell (Windows) sind die gängigsten Tools für die Skripterstellung.
  • Bash-Skripte sind Textdateien mit Befehlen, die nacheinander ausgeführt werden.
  • PowerShell arbeitet mit Objekten und ist leistungsstark für die Windows-Administration.
  • Variablen, Argumente, If-Prüfungen und Schleifen sind die wichtigsten Bausteine.