Skriptavimas su Bash ir PowerShell

Skip to content

Tai mašinu versta tekstas, kuriame gali būti klaidų!

Jei atlikote tą pačią užduotį trečią kartą, laikas ją automatizuoti. Skriptavimas – tai leidimas mašinai atlikti nuobodų darbą už jus, greičiau ir neužmirštant nieko.

Kodėl automatizuoti?

Kai kurios IT operacijų užduotys atliekamos dažnai:

  • Atnaujinti serverius
  • Sukurti naudotojus
  • Daryti atsarginę kopiją
  • Paleisti iš naujo paslaugas po atnaujinimo
  • Patikrinti, ar paslaugos veikia

Atlikti jas rankiniu būdu kiekvieną kartą užima laiko, ir lengva pamiršti žingsnį. Skriptas atlieka tą patį kiekvieną kartą, nesiskųsdamas.

Bash: Skriptavimas Linux sistemoje

Bash yra apvalkalas (terminalas) daugumoje Linux paskirstymų, ir jis taip pat gali vykdyti scenarijus. Bash scenarijus – tai tiesiog tekstinis failas su komandomis, kurios vykdomos eilės tvarka.

Jūsų pirmasis scenarijus

Sukurkite failą pavadindami jį update.sh:

#!/bin/bash
# Atnaujinkite paketų sąrašą ir įdiekite atnaujinimus
echo "Atnaujinama sistema..."
sudo apt update
sudo apt upgrade -y
echo "Baigta!"

Padarykite failą įvykdomuoju ir paleiskite jį:

chmod +x oppdater.sh
./oppdater.sh
# Paus programmet i 5 sekunder
# Sustabdykite programą 5 sekundėms

#!/bin/bash

Pirmoji eilutė vadinama shebang. Ji praneša operacinei sistemai, kad failas turi būti paleidžiamas naudojant Bash. Be jos sistema nežino, kuri programa turi interpretuoti scenarijų.

Kintamieji ir įvedimas

#!/bin/bash
BRUKERNAVN=$1

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

sudo adduser "$BRUKERNAVN"
sudo usermod -aG sudo "$BRUKERNAVN"
echo "Vartotojas $BRUKERNAVN sukurtas su sudo prieiga." # Vartotojas $BRUKERNAVN sukurtas su sudo prieiga.

Čia scenarijus priima vartotojo vardą kaip argumentą ($1 yra pirmas argumentas). Jei paleidžiate ./lag_bruker.sh ola, tai sukurs vartotoją ola ir suteiks jam sudo prieigą.

Naudingi Bash konceptai

Konceptas Pavyzdys Ką tai daro
Kintamasis NAVN="Ola" Išsaugo vertę
Argumentas $1, $2 Įvestis iš komandų eilutės
Jei patikra if [ -f "fil.txt" ]; then Patikrina, ar failas egzistuoja
Ciklas for for f in *.log; do Atlieka kažką kiekvienam atitinkamam failui
Kanalas cat logg.txt \| grep "ERROR" Perduoda vienos komandos išvestį kitai

PowerShell: Skriptavimas Windows sistemoje

PowerShell yra Windows atsakymas į Bash, tačiau jis yra labiau objektinis. Jis dirba su objektais, o ne tik su tekstu, todėl yra galingas Windows sistemų administravimui.

Pavyzdys: Patikrinkite disko vietą

For å sjekke hvor mye diskplass du har igjen, kan du bruke kommandoen df -h. Denne viser diskbruken for alle monterte filsystemer i et lesbart format.

Norėdami patikrinti, kiek disko vietos liko, galite naudoti komandą df -h. Ji rodo disko naudojimą visoms sumontuotoms failų sistemoms įskaitomu formatu.

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

Taip pat galite naudoti komandą du -h, kad pamatytumėte, kiek vietos užima kiekviena aplankas ir failas.

Tips: For å finne de største filene, kan du kombinere du -h med sort -h og head -n 10.

Patarimas: Norėdami rasti didžiausius failus, galite sujungti du -h su sort -h ir head -n 10.

# Patikrinkite laisvą disko vietą
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)}}

Pavyzdys: Programinės įrangos įdiegimas naudojant Winget

# Įdiegti kelias programas vienu metu
winget install Mozilla.Firefox
winget install Microsoft.VisualStudioCode
winget install Git.Git
winget install Python.Python.3.12

Tai yra daug greičiau nei viską atsisiųsti ir įdiegti rankiniu būdu. Sąrašą galite išsaugoti skripte ir jį paleisti kiekvieną kartą, kai nustatote naują mašiną.

Easy Užduotis 1 – Sukurkite atnaujinimo scenarijų

Parašykite Bash scenarijų, kuris:

  1. Atnaujina paketų sąrašą
  2. Įdiega visus prieinamus atnaujinimus
  3. Paleidžia iš naujo Nginx (arba kitą paslaugą, kurią paleidžiate)
  4. Išveda pranešimą, kai baigta

Paleiskite jį vienoje iš savo VM ir patikrinkite, ar tai veikia.

Easy Užduotis 2 – Automatizuokite mašinos nustatymą

Sukurkite PowerShell scenarijų (.ps1) arba paprastą winget install komandų sąrašą visiems programoms, kurių jums reikia naujame kompiuteryje. Apmąstykite:

  • Kokias programas visada įdiegiate?
  • Ar galite su scenarijumi sukonfigūruoti ir kai kuriuos nustatymus?

Kitą kartą nustatydami mašiną, tiesiog paleiskite scenarijų vietoj to, kad praleistumėte valandą ruoniškai įdiegiant.

Apibendrinimas

  • Jei atliekate kažką daugiau nei du kartus, apsvarstykite automatizavimą
  • Bash (Linux) ir PowerShell (Windows) yra dažniausiai naudojami scenarijų kūrimo įrankiai
  • Bash scenarijai yra tekstiniai failai su komandomis, kurios vykdomos eilės tvarka
  • PowerShell dirba su objektais ir yra galingas Windows administravimui
  • Kintamieji, argumentai, if patikrinimai ir kilpos yra svarbiausi statybinių elementai