18ITD-LinuxScripts/2019-11-21_crontab/README.md

29 lines
1.3 KiB
Markdown

# 2019-11-21 - Crontab og Bash-script
> Lag et bash-script som kjøres automatisk minst en gang i døgnet ved hjelp av crontab.
Det er frivillig hva scriptet skal gjøre, men her er noen ideer:
1. Ta backup av hjemmeområder
2. Sikre at nettverkskortet er UP
3. Slette syslog
Vær kreative!
Bash-scriptet bruker `curl` til å kjøre en HTTP(S) request mot [DuckDNS.org](https://www.duckdns.org/) for å oppdatere et subdomene med ny IP-adresse (en type dynamic DNS).
Du trenger å spesifisere `DOMAIN` og `DUCKDNS_TOKEN` (enten i scriptet eller via "environment variable" (envvar)).
For at det skal fungere i `crontab` med envvar, må du sette det foran script-kommandoen.
Her er et eksempel som kjører fem minutter over hver time (13:05, 14:05, 15:05 osv.) og hvor alle "echo" blir skrevet til en loggfil `/home/alex/logs/duckdns.log`:
`5 * * * * DUCKDNS_TOKEN="abc123-def456-ghi789-jkl000" /bin/bash /home/alex/scripts/2019-11-21_crontab/update-duckdns.sh >> /home/alex/logs/duckdns.log`
For swagpoints har jeg også laget en logrotate-config for å "rotere" gamle loggfiler. Denne er relevant for alle logs som ligger i `/home/alex/logs`, ikke bare den som tilhører dette scriptet:
```
/home/alex/logs/*.log {
daily
missingok
rotate 7
compress
delaycompress
notifempty
create 0640 alex alex
}
```