Det er flere måter å kjøre en jobb med jevne mellomrom i et UNIX -system. Her er en oversikt over de vanligste metodene og deres forskjeller:
1. crontab
* Formål: Den mest brukte metoden for planleggingsoppgaver. Den lar deg definere tidsplaner for kommandoer og skript som skal kjøres på bestemte tidspunkter eller intervaller.
* hvordan det fungerer:
* Du oppretter en crontab -fil, vanligvis i hjemmekatalogen din (`crontab -e`), som inneholder linjer med planleggingsinformasjon og kommandoen som skal utføres.
* Hver linje har seks felt som representerer:minutt, time, dag på måned, måned, ukedag og kommando.
* Du kan bruke jokertegn (`*`, `?`, `--`,`/`) for å representere verdier for disse feltene.
* eksempel:
`` Bash
# Kjør et manus hver dag klokka 03:00
0 3 * * * /path/to/your/script.sh
# Kjør en kommando hvert 5. minutt
*/5 * * * * ekko "Kjører hvert 5. minutt"
`` `
* Pros:
* Fleksible planleggingsalternativer.
* Enkelt og godt dokumentert.
* Kan brukes til et bredt utvalg av oppgaver.
* ulemper:
* Krever rottilgang for å endre den systemomfattende crontab.
* Krever en Cron Daemon som kjører i bakgrunnen.
* Kan være vanskelig å administrere komplekse tidsplaner.
2. ved kommando
* Formål: Brukes til å planlegge oppgaver for å kjøre på et bestemt fremtidig tidspunkt.
* hvordan det fungerer:
* Bruk `at '-kommandoen med en tidsstempel eller en relativ tid (f.eks.' I morgen klokken 17:00").
* Skriv inn kommandoen eller skriptet du vil kjøre.
* Systemet lagrer jobben og utfører den til det angitte tidspunktet.
* eksempel:
`` Bash
# Kjør et manus i morgen klokka 10:00
Klokka 10:00 i morgen
`` `
* Pros:
* Enkel å bruke til engangsoppgaver.
* Krever ikke å lage en crontab -oppføring.
* ulemper:
* Bare for fremtidige henrettelser, ikke tilbakevendende jobber.
* Begrensede planleggingsalternativer sammenlignet med Crontab.
3. SystemD -tidtakere
* Formål: Moderne SystemD-baserte Linux-distribusjoner tilbyr en sofistikert tilnærming til planleggingsjobber.
* hvordan det fungerer:
* Du oppretter en tjenesteenhetsfil (`/etc/SystemD/System/Your-AB.Timer`) med planleggingsinformasjon.
* Systemd-Timerd`-tjenesten overvåker disse timerenhetene og utløser de tilsvarende tjenestene til de spesifiserte tidspunktene.
* eksempel:
`` Bash
[Enhet]
Beskrivelse =Kjør et skript hver time
Etter =nettverk-online.Target
[Timer]
Oncalendar =*-*-*00:00:00
OnActiveSec =3600
[Service]
Type =enkel
Bruker =ditt brukernavn
ExecStart =/sti/til/din/script.sh
`` `
* Pros:
* Integrert med SystemD, og tilbyr omfattende funksjoner.
* Mer robust og effektiv enn crontab.
* Tillater fleksible planleggingsalternativer, inkludert tidssoner og relativ planlegging.
* ulemper:
* Krever kjennskap til SystemD -enhetsfiler.
* Ikke så mye brukt som crontab, men får popularitet.
4. Anacron
* Formål: Brukes til jobber som trenger å kjøre med jevne mellomrom selv om systemet ikke kjører på planlagt tidspunkt.
* hvordan det fungerer:
* `Anacron` sjekker for jobber planlagt i`/etc/anacrontab`.
* Hvis systemet ikke kjørte på planlagt tidspunkt, kjører det jobben når det starter på nytt.
* eksempel:
`` Bash
# Kjør et skript hver tredje dag
3 12 * * * /path/to/your/script.sh
`` `
* Pros:
* Sikrer at jobber kjøres selv om systemet ikke er oppe på det planlagte tidspunktet.
* ulemper:
* Mindre fleksibel planlegging enn crontab.
* Ikke alltid nødvendig hvis systemet kjører konsekvent.
Velge riktig metode:
* crontab: For tilbakevendende oppgaver med bestemte tider og intervaller.
* AT: For engangsoppgaver på et bestemt fremtidig tidspunkt.
* Systemd -tidtakere: For moderne systemer med SystemD, som tilbyr avanserte planleggingsalternativer.
* AnaCron: For jobber som må kjøre selv om systemet ikke kjørte på det planlagte tidspunktet.
Husk alltid å teste de planlagte jobbene grundig for å sikre at de kjører som forventet og unngå potensielle konflikter.