29 lines
1.3 KiB
Markdown
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
|
|
}
|
|
``` |