Labb 9: Bash-skripter

Syftet med denna laboration är att förstå och tillämpa felsökning samt att göra nödvändiga anpassningar i de angivna skripten. Följ stegen nedan:

  1. Skapa en katalog för labben där du kan spara och arbeta med skripten.
    • mkdir -p ~/labb9
    • cd ~/labb9
  2. Kopiera varje angivet skript och spara dem som separata filer i katalogen labb9. Se till att varje skript har rätt filnamn och filändelse (t.ex. .sh för Bash-skript).
  3. Kör varje skript för att identifiera eventuella fel eller problem:
  4. Om du stöter på fel, använd olika metoder för att hitta och åtgärda problemen.
  5. För varje skript som du felsöker och åtgärdar, skriv en kort förklaring av de problem och lösningar du hittade i en fil som heter README.txt. Beskriv vilka fel som uppstod, hur du felsökte dem, och vilka ändringar som gjordes för att få skriptet att fungera korrekt. Som exempel kan du ha tre delar: Problem (beskriv kortfattat vad som inte fungerade); Felsökningssteg (vad du gjorde för att identifiera problemet); Åtgärd (beskriv ändringarna som gjordes för att lösa problemet).
  6. Verifiera att skripterna fungerar.
  7. Komprimera katalogen labb9 och lämna in ditt arbete på klassrummet.

Att komprimera en katalog i Linux

Flera alternativ finns, men det mest använt är tar och zip. tar egentligen bara samlar ihop filer och kataloger till ett arkiv utan att komprimera dem. Komprimeringen sker först när tar används tillsammans med ett komprimeringsverktyg som gzip (-z-flaggan) eller bzip2 (-j-flaggan).

Exempel:

tar -czf labb9_in.tar.gz labb9

Bash-skripter att jobba med

Villkorssatser:

#!/bin/bash
echo "Ange ett nummer:"
read number

if [ $number -gt 10 ]; then
echo "Ditt nummer är större än 10!"
else
echo "Ditt nummer är 10 eller mindre!"
fi

Loopar:

#!/bin/bash
for i in 1 2 3 4 5; do
echo "Nummer $i"
done

Ett enkelt menybaserat skript

#!/bin/bash

echo "Välj ett alternativ:"
echo "1. Visa datum och tid"
echo "2. Visa inloggade användare"
echo "3. Visa aktuell arbetskatalog"
echo "4. Avsluta"
read choice
case $choice in
1) date ;;
2) who ;;
3) pwd ;;
4) echo "Avslutar..." ;;
*) echo "Ogiltigt val" ;;
esac

CPU övervakning

#!/bin/bash
threshold=75
cpu_usage=$(top -bn1 | grep "Cpu(s)" | awk '{print $2}' | sed 's/[^0-9.]//g')

echo "Nuvarande CPU-användning: $cpu_usage%"

if (( $(echo "$cpu_usage > $threshold" | bc -l) )); then
echo "Varning: CPU-användning är över $threshold%!"
else
echo "CPU-användningen är inom säkra nivåer."
fi