Skriptaus Bashilla ja PowerShellillä

Skip to content

Tämä on konekäännetty teksti, joka saattaa sisältää virheitä!

Jos olet tehnyt saman tehtävän kolmannen kerran, on aika automatisoida se. Skripting tarkoittaa, että annat koneen tehdä tylsän työn puolestasi, nopeammin ja ilman että se unohtaa mitään.

Miksi automatisoida?

Jotkut IT-toimintojen tehtävät tehdään usein:

  • Palvelimien päivittäminen
  • Käyttäjien luominen
  • Varmuuskopiointi
  • Palveluiden uudelleenkäynnistys päivityksen jälkeen
  • Palveluiden toiminnan tarkistaminen

Näiden tekeminen manuaalisesti joka kerta vie aikaa, ja vaiheen unohtaminen on helppoa. Skripti tekee saman asian joka kerta valittamatta.

Bash: Skriptaus Linuxissa

Bash on kuori (pääte) useimmissa Linux-jakeluissa, ja se voi myös suorittaa skriptejä. Bash-skripti on yksinkertaisesti tekstitiedosto, joka sisältää komentoja, jotka suoritetaan järjestyksessä.

Ensimmäinen skriptisi

Luo tiedosto nimeltä oppdater.sh:

#!/bin/bash
# Päivitä pakettiluettelo ja asenna päivitykset
echo "Päivitetään järjestelmää..."
sudo apt update
sudo apt upgrade -y
echo "Valmis!"

Tee tiedostosta suoritettava ja suorita se:

chmod +x oppdater.sh
./oppdater.sh
# Gjør skriptet kjørbart
# Kjør skriptet
chmod +x oppdater.sh
./oppdater.sh
# Tee skriptistä suoritettava
# Suorita skripti

#!/bin/bash

Ensimmäistä riviä kutsutaan shebangiksi. Se kertoo käyttöjärjestelmälle, että tiedosto suoritetaan Bashilla. Ilman sitä järjestelmä ei tiedä, millä ohjelmalla skripti tulkitaan.

Muuttujat ja syötteet

#!/bin/bash
BRUKERNAVN=$1

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

sudo adduser "$BRUKERNAVN"
sudo usermod -aG sudo "$BRUKERNAVN"
echo "Käyttäjä $BRUKERNAVN luotu sudo-oikeuksilla."

Tässä skripti ottaa käyttäjätunnuksen argumentiksi ($1 on ensimmäinen argumentti). Jos ajat ./lag_bruker.sh ola, se luo käyttäjän ola ja antaa sille sudo-oikeudet.

Hyödyllisiä Bash-konsepteja

Konsepti Esimerkki Mitä se tekee
Muuttuja NIMI="Ola" Tallentaa arvon
Argumentti $1, $2 Syöte komentoriviltä
Jos-tarkistus if [ -f "tiedosto.txt" ]; then Tarkistaa, onko tiedosto olemassa
For-silmukka for f in *.log; do Tekee jotain jokaiselle vastaavalle tiedostolle
Putki cat logi.txt \| grep "ERROR" Lähettää yhden komennon tulosteen toiselle

PowerShell: Skriptaus Windowsissa

PowerShell on Windowsin vastaus Bashille, mutta se on enemmän olio-ohjelmointiin suuntautunut. Se toimii objektien eikä pelkän tekstin kanssa, mikä tekee siitä tehokkaan Windows-järjestelmien hallinnassa.

Esimerkki: Tarkista levytila

# Tarkista vapaa levytila
Get-PSDrive -PSProvider FileSystem | Select-Object Name, 
    @{Name="Käytetty (GB)"; Expression={[math]::Round($_.Used / 1GB, 2)}},
    @{Name="Vapaa (GB)"; Expression={[math]::Round($_.Free / 1GB, 2)}}

Esimerkki: Ohjelmiston asentaminen Wingetillä

# Asenna useita ohjelmia kerralla
winget install Mozilla.Firefox
winget install Microsoft.VisualStudioCode
winget install Git.Git
winget install Python.Python.3.12

Tämä on paljon nopeampaa kuin kaiken lataaminen ja asentaminen manuaalisesti. Voit tallentaa listan skriptiin ja ajaa sen aina, kun asetat uuden koneen pystyyn.

Easy Tehtävä 1 – Päivitysskriptin luominen

Kirjoita Bash-skripti, joka:

  1. Päivittää pakettiluettelon
  2. Asentaa kaikki saatavilla olevat päivitykset
  3. Käynnistää Nginx:n uudelleen (tai jonkin muun käynnissä olevan palvelun)
  4. Tulostaa viestin, kun se on valmis

Suorita se yhdellä virtuaalikoneistasi ja varmista, että se toimii.

Easy Tehtävä 2 – Automatisoi koneen asennus

Luo PowerShell-skripti (.ps1) tai yksinkertainen lista winget install-komentoja kaikille ohjelmille, joita tarvitset uudella tietokoneella. Mieti:

  • Mitä ohjelmia asennat aina?
  • Voitko myös määrittää joitain asetuksia skriptillä?

Seuraavan kerran kun asennat koneen, suorita vain skripti manuaalisen asennuksen sijaan, joka veisi tunnin.

Yhteenveto

  • Jos teet jotain enemmän kuin kahdesti, harkitse sen automatisointia
  • Bash (Linux) ja PowerShell (Windows) ovat yleisimmät skriptausvälineet
  • Bash-skriptit ovat tekstitiedostoja, jotka sisältävät komentoja, jotka suoritetaan järjestyksessä
  • PowerShell toimii objektien kanssa ja on tehokas Windows-hallinnassa
  • Muuttujat, argumentit, if-tarkistukset ja silmukat ovat tärkeimmät rakennuspalikat