Guides 3 min lesing

Unngå glemte oppgaver: sørg for at cron-jobbene dine kjører som de skal

Sikkerhetskopier, importer og opprydding kjører med cron, og de feiler i det stille. Vanlige årsaker til at cron-jobber ikke kjører, hvordan du feilsøker dem og hvordan du blir varslet når en jobb uteblir.

Cron-jobber gjør det stille arbeidet bak nettsteder og servere: sikkerhetskopier, oppdateringer, importer, fakturaer, oppvarming av cache og opprydding. Når de fungerer, merker ingen noe. Når de stopper, merker heller ingen noe, før en sikkerhetskopi mangler eller en fakturakjøring aldri ble gjort.

Hvorfor cron-jobber er viktige

Cron kjører kommandoer automatisk til faste tider eller med faste intervaller. Det sparer tid og fjerner risikoen for at noen glemmer en oppgave. Samtidig betyr det at kritisk arbeid, som sikkerhetskopiene hver natt, er avhengig av en planlegger som ikke sier fra til noen når noe går galt.

Vanlige årsaker til at cron-jobber ikke kjører

Nedetid på serveren. Er serveren av eller starter på nytt på det planlagte tidspunktet, kjører ikke jobben.

Syntaksfeil. Et feil felt i tidsplanuttrykket kan føre til at jobben kjører til feil tid eller aldri.

Feilkonfigurasjon. Feil bruker, feil arbeidsmappe eller en jobb lagt i en crontab som aldri blir lastet inn.

Ulike miljøer. Cron kjører med et minimalt miljø. En kommando som fungerer i skallet ditt, kan feile under cron fordi PATH eller andre variabler mangler.

Overlapp og tidsavbrudd. En jobb som kjører lenger enn intervallet sitt, kan kollidere med neste kjøring. En maksimal kjøretid på jobbens monitor forteller deg når en kjøring tar for lang tid.

Slik finner og feilsøker du feil

Begynn med loggene. Systemloggen (ofte /var/log/syslog eller cron-loggen i distribusjonen din) viser om cron startet jobben. Jobbens egen utdata viser hva som skjedde etterpå.

Typiske feil og hva de betyr:

command not found: bruk absolutte stier, eller sett PATH øverst i crontaben.

permission denied: sjekk filrettighetene og hvilken bruker jobben kjører som.

syntax error: sjekk tidsplanuttrykket og anførselstegnene i kommandoen.

Send utdataene til en loggfil, så feil etterlater seg spor:

30 2 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1

Overvåking av cron-jobber

Logger hjelper bare hvis noen leser dem. Overvåking gjør en stille feil om til et varsel. Den mest pålitelige metoden er en heartbeat: jobben sender en forespørsel til en overvåkings-URL når den er ferdig. Kommer ikke forespørselen innen forventet tid, får du et varsel.

Med cron-monitorer i Uptimecheck pinger jobben en unik URL med GET eller POST. Monitoren tar crontab-tidsplanen i din tidssone, tar imot start- og ferdig-ping på samme monitor, varsler når en kjøring overskrider maksimal kjøretid, og kan registrere avslutningskoden og jobbens utdata. Mangler et ping, går varselet til e-post, Slack, Microsoft Teams, Discord, Google Chat, Mattermost, Telegram, PagerDuty, ntfy, Pushover, en webhook eller push-varsler på mobilen, på alle planer. Les steg-for-steg-guiden i Slik overvåker du cron-jobber.

Beste praksis for tidsplaner

Legg tunge jobber utenfor perioder med høy belastning.

Spre jobber som bruker de samme ressursene, i stedet for å starte alle ved midnatt.

Bruk en lås (for eksempel flock), så en treg kjøring ikke overlapper med den neste.

Gå gjennom tidsplanene når applikasjonen endrer seg.

Cron på flere servere

Når den samme jobben finnes på flere servere, må du bestemme hvor den skal kjøre, og sørge for at den kjører én gang. Sentral planlegging eller en lås i et delt lager hjelper. Gi hver jobb sin egen heartbeat, så du vet hvilken server som gikk glipp av kjøringen.

Sikring av cron-jobber

Cron-jobber har ofte tilgang til databaser, sikkerhetskopier og påloggingsinformasjon.

Begrens hvem som kan redigere crontabs.

Hold hemmeligheter ute av selve crontab-linjen, og legg dem i beskyttede filer eller i miljøkonfigurasjonen.

Gå gjennom jobbene jevnlig, og fjern dem du ikke lenger trenger.

Bruk ressursene effektivt

Kjør jobbene bare så ofte som de trenger, og hold kommandoene enkle. En rapport som ingen leser hver time, kan kjøres daglig.

Test før du stoler på den

Kjør en ny jobb manuelt som samme bruker, sjekk utdataene og planlegg den først da. Legg til heartbeaten samtidig, så du vet fra første natt om den kjørte.

Oppsummering

Cron-jobber er avgjørende og usynlige, og det er nettopp derfor de trenger overvåking. Rett de vanlige årsakene, logg utdataene og legg til en heartbeat på hver jobb som betyr noe.

Prøv Uptimecheck gratis i 14 dager, uten kredittkort.

Gratis verktøy Cron-uttrykk forklart

Les videre

Guides 8 min lesing

Cron-uttrykk forklart: syntaks, eksempler og vanlige feil

Et cron-uttrykk er fem felt som sier når en jobb skal kjøres. Her er syntaksen, spesialtegnene og snarveier som @daily, ferdige eksempler og feilene med tidssone og PATH som får jobber til å stoppe.

Les

Guides 6 min lesing

Slik overvåker du cron-jobber med heartbeats

Cron-jobber feiler i stillhet. En heartbeat-monitor varsler deg når en planlagt jobb ikke melder seg i tide. Slik fungerer heartbeats, slik legger du en til i crontab, og disse innstillingene bør du velge.

Les

Nedetid er fortid.

Sett opp din første monitor på under ett minutt, eller se deg rundt i livedemoen først.

14 dagers gratis prøveperiode · Deretter gratis for 5 monitorer · Uten kredittkort