18ITD-LinuxScripts/2019-11-21_crontab
2019-11-28 11:41:17 +01:00
..
README.md Legg til logrotate-eksempel i 2019-11-21_crontab 2019-11-28 11:41:17 +01:00
update-duckdns.sh Legg til tid/dato i DuckDNS cronjob 2019-11-21 13:26:47 +01:00

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 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
}