Dette kapittelet dekker to former for automatisering: planlagte oppgaver med
cron, og små shell-skript som samler kommandoer.
cron — planleggeren
cron kjører kommandoer etter en tidsplan. Det er en tjeneste som er aktiv
som standard på de fleste distroer. Hver bruker har sin egen crontab — en
fil som lister hva som skal kjøres og når.
crontab — administrer planlagte oppgaver
Rediger crontab-en din:
$ crontab -e
Dette åpner teksteditoren din med en tom crontab. List den:
$ crontab -l
Hver linje har fem tidsfelt etterfulgt av kommandoen:
minute hour day-of-month month day-of-week command
0 2 * * * /usr/bin/backup.sh
Linjen over kjører /usr/bin/backup.sh hver dag kl. 02:00.
| Felt | Område |
|---|---|
| minute | 0–59 |
| hour | 0–23 |
| day of month | 1–31 |
| month | 1–12 |
| day of week | 0–7 (0 og 7 er søndag) |
* betyr «alle». Eksempler:
# hver dag kl. 02:00
0 2 * * * /usr/bin/backup.sh
# hver time, på minutt 30
30 * * * * /home/user/check.sh
# hver mandag kl. 09:00
0 9 * * 1 /home/user/weekly.sh
# hvert 15. minutt
*/15 * * * * /home/user/status.sh
Etter at du lagrer, plukker cron opp den nye tidsplanen automatisk. Sjekk at cron-tjenesten kjører hvis ingenting skjer:
$ systemctl status cron
For å installere en crontab fra en fil (praktisk når du ruller ut til flere maskiner): skriv linjene til en fil og last den:
$ crontab my_crontab.txt
Fjern crontab-en din helt:
$ crontab -r
En advarsel om stier: cron kjører kommandoer med et minimalt miljø, så
backup.sh finner ikke aliasene eller $PATH-oppføringene dine fra
~/.bashrc. Bruk absolutte stier (/usr/bin/... og /home/user/...) i
cron-linjer og -skript.
Enkle shell-skript
Et shell-skript er en fil med kommandoer, kjørt fra topp til bunn. Opprett ett med editoren fra kapittel 4:
$ nano hello.sh
Skriv inn disse to linjene, lagre og avslutt (Ctrl+O, Enter, Ctrl+X):
#!/bin/bash
echo "Hello from script"
Første linje (#!/bin/bash) er shebangen — den forteller systemet hvilket
skall som skal brukes. Gjør skriptet kjørbart og kjør det:
$ chmod +x hello.sh
$ ./hello.sh
Hello from script
Du kan også kjøre det uten å gjøre det kjørbart:
$ bash hello.sh
Skript kan bruke alt fra denne guiden — pipes, redireksjon, variabler og $1
for det første argumentet:
#!/bin/bash
# backup.sh — kopier en mappe til ~/backups med datostempel
dir="$1"
stamp="$(date +%Y%m%d)"
cp -r "$dir" "$HOME/backups/$dir-$stamp"
echo "Backed up $dir to backups/$dir-$stamp"
$( ) rundt date kjører kommandoen og bruker utdataen der og da — så
stamp ender opp med å inneholde den formaterte datoen.
Kjør det med et argument:
$ chmod +x backup.sh
$ ./backup.sh Documents
Backed up Documents to backups/Documents-20260805
Datostempelet kommer fra date-kommandoen. Alene skriver den ut dagens dato
og klokkeslett; med +FORMAT skriver den ut hva formatet sier. %Y%m%d
utvides til år-måned-dag (for eksempel 20260805), som er et praktisk og
sorterbart navn for en sikkerhetskopi.
$ date
Wed Aug 5 10:00:00 UTC 2026
$ date +%Y%m%d
20260805
Kombiner de to idéene: legg skriptet i cron, og du har ubetjent automatisering — den klassiske «ta sikkerhetskopi hver natt kl. 02:00»-oppsettet.
Når et skript vokser ut av de første linjene sine, går guiden Bash — skript som holder mål dypere inn i anførselstegn, tester, løkker og feilhåndtering.