Scripts er nyttige, men enda nyttigere når de kjører av seg selv. I denne modulen ser vi på hvordan du kan sette opp automatisk kjøring av scripts, og hvordan CI/CD kan automatisere testing og utrulling av kode.
Cron (Linux)
Cron lar deg kjøre kommandoer og scripts automatisk etter en tidsplan:
# Rediger cron-tabellen
crontab -e
# Kjør backup-scriptet hver natt kl 02:00
0 2 * * * /home/admin/backup.sh
Formatet er: minutt time dag måned ukedag kommando
| Felt | Verdi | Betydning |
|---|---|---|
0 | Minutt 0 | På hele timen |
2 | Time 2 | Klokken 02:00 |
* | Alle dager | Hver dag |
* | Alle måneder | Hver måned |
* | Alle ukedager | Mandag til søndag |
Noen flere eksempler:
| Cron-uttrykk | Hva det betyr |
|---|---|
*/5 * * * * | Hvert 5. minutt |
0 * * * * | Hver hele time |
0 8 * * 1-5 | Kl 08:00 mandag til fredag |
0 0 1 * * | Første dag i hver måned, kl 00:00 |
@reboot | Hver gang maskinen starter |
Crontab Guru
Bruk crontab.guru for å bygge og teste cron-uttrykk. Du skriver inn et uttrykk og ser med en gang hva det betyr og når det neste kjøretidspunktet er.
Vanlige feil med cron
- Feil sti: Cron kjører med et minimalt miljø. Bruk alltid fulle stier (f.eks.
/usr/bin/python3i stedet for barepython3). - Manglende rettigheter: Scriptet må være kjørbart (
chmod +x). - Ingen output: Cron sender output til e-post som standard. Hvis du vil logge det, bruk
>> /var/log/mittscript.log 2>&1på slutten.
Task Scheduler (Windows)
Windows har sin egen versjon av cron. Du finner den ved å søke etter “Task Scheduler” i startmenyen. Der kan du opprette oppgaver som kjører scripts til bestemte tidspunkter, f.eks. ved oppstart eller hver dag kl 03:00.
Task Scheduler har et grafisk grensesnitt der du kan:
- Velge en trigger (når oppgaven skal kjøre)
- Velge en action (hva som skal kjøres)
- Sette betingelser (f.eks. bare når PCen er på strøm)
Du kan også opprette oppgaver fra kommandolinjen med schtasks:
# Kjør et script hver dag kl 03:00
schtasks /create /tn "NattligBackup" /tr "C:\Scripts\backup.ps1" /sc daily /st 03:00
CI/CD: Automatisert testing og utrulling
CI/CD (Continuous Integration / Continuous Delivery) automatiserer testing og utrulling av kode. GitHub Actions er et populært verktøy for dette.
Et enkelt eksempel: Hver gang du pusher kode til GitHub, kan en workflow automatisk:
- Kjøre tester
- Bygge applikasjonen
- Rulle den ut til serveren
# .github/workflows/deploy.yml
name: Deploy
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Kjør tester
run: python -m pytest
- name: Deploy til server
run: echo "Her ville vi deployet til serveren"
CI/CD er der Utvikling og Driftstøtte møtes: utvikleren skriver koden, og pipelinen sørger for at den havner trygt på serveren.
Du trenger ikke å forstå alt her
CI/CD er et stort tema. Det viktigste å ta med seg er konseptet: kode som pushes til et repository kan automatisk testes og rulles ut. Du kommer til å se mer av dette i praksis etterhvert.
Oppgave 1 - Sett opp en cron-jobb
Sett opp en enkel cron-jobb på en av dine VMer:
- Lag et script som skriver dato og klokkeslett til en loggfil:
#!/bin/bash echo "Kjørt: $(date)" >> /home/dinbruker/cron-test.log - Gjør scriptet kjørbart med
chmod +x - Legg det inn i crontab med
crontab -etil å kjøre hvert 5. minutt - Vent noen minutter og sjekk loggfilen
Løsning: Cron-uttrykk
*/5 * * * * /home/dinbruker/cron-test.sh
Oppsummering
- Cron (Linux) kjører scripts automatisk etter en tidsplan
- Task Scheduler (Windows) gjør det samme med et grafisk grensesnitt
- Bruk crontab.guru for å bygge cron-uttrykk
- CI/CD automatiserer testing og utrulling av kode ved hjelp av verktøy som GitHub Actions