En Cron- eller Cron-jobb er en tidsbasert planlegger som er vanlig i Linux / Unix-systemer. Den planlegger spesifikke brukeroppgaver for å kjøre med jevne mellomrom i fast dato, klokkeslett eller intervaller. De fleste av disse oppgavene er skript for å utføre funksjoner som sikkerhetskopier og mer. For å opprette disse cron-jobbene bruker vi crontab-kommandoene. En crontab er et UNIX-kommando / verktøy som brukes til å opprette og administrere cron-jobber.
Som du vil se nedenfor, er det ganske enkelt å lage og redigere en cron-jobb. Den mest fantastiske delen er at du ikke trenger å starte cron eller PCen din på nytt etter å ha opprettet eller redigert en cron-jobb. Bare lagre filen, så er du klar.
Vanlige bruksområder for Cron Jobs
- Stille inn maskinvaretiden: Network Time Protocol brukes av mange datamaskiner for å stille inn systemtiden, men angir ikke maskinvaretiden. Med cron kan du stille inn maskinvaretiden basert på systemtiden.
- Planlegge oppgaver og kjøre programmer som kjører daglige programmer: Med cron-tjenesten kan du kjøre mange systemtjenester som trenger daglig ledetekst som Logwatch.
- Rengjøring av katalog automatisk, kjøring av sikkerhetskopiprogrammer og mye mer.
Grunnleggende deler av en cron-kommando
Standard syntaksen for crontab er som nedenfor:
a b c d e USERNAME / path / to / script output
1.Tid og dato sammen med hvor repeterende jobben blir spesifisert av de fem feltene:
-
- en: Protokoll: (varierer fra 0 - 59)
- b: Timer: (varierer fra 0 - 23 )
- c: Dager: (varierer fra 0 - 31 )
- d: Måneder: (varierer fra 0 - 12 )
- e: Ukedager: (varierer fra 0 - 7. )
- en: Protokoll: (varierer fra 0 - 59)
Merk: Dagene starter med mandag. 0 og 7 representerer søndag
2. BRUKERNAVN
: Husk å erstatte dette med brukernavnet ditt
3. Den spesifikke plasseringen og skriptet som skal utføres av cron er spesifisert av det tredje segmentet:
/ sti / til / skript
4. Den siste delen definerer varselet til brukeren etter fullført jobb som en måte å holde oversikt over oppgaver:
produksjon
Innboksen din kan imidlertid være full av mindre oppgaver som ofte kanaliseres. For å unngå dette kan du deaktivere den automatiske e-postutgangen ved å legge til strengen nedenfor i cron-kommandoen:
> / dev / null 2> & 1 e.g a b c d e USERNAME / path / to / script> / dev / null 2> & 1
I tillegg bruker cron fire verdier til som brukes til å spesifisere flere verdier i et felt. De er:
- Stjerne (*): Viser til alle verdier i et felt.
- Kommaet (,): Bruk til å skille en liste over verdier i cron-kommandoen.
- Bindestrek (-): Spesifiser et verdiområde.
- Fremover skråstrek (/): deler en verdi i forskjellige trinn.
Sette opp cron-jobbene
Crontab-kommandoene er ansvarlige for å opprette og redigere cron-jobber fordi cron-filene ikke skal redigeres direkte. Crontab definerer hvordan du kan opprette, redigere, liste, feilsøke, installere og avinstallere cron-oppgavene.
Før du begynner med cron-jobber, er det viktig å sikre at Linux Desktop eller Server er oppdatert ved å utføre kommandoene nedenfor:
sudo apt oppdatering sudo apt oppgradering
Hvis du ikke har cron-pakken installert på systemet ditt, installerer du det med kommandoen nedenfor:
sudo apt-get install cron
Hvordan redigere crontab-filen?
For å fullføre prosessen, må du konfigurere cron-jobben. Brukeren som er logget inn når en cron-jobb opprettes, blir automatisk eieren. Det kan endres ved å opprette en jobbeier som vil være ansvarlig for å administrere cron-jobben, som vi vil se i dette innlegget.
For å åpne crontab-konfigurasjonsfilen for brukeren som er pålogget, utfør kommandoen nedenfor:
crontab -e
Du vil bli bedt av systemet om å velge en passende redaktør. I vårt tilfelle vil vi velge det første alternativet (nano editor).
Du kan legge til en planlagt oppgave per linje i henhold til dine preferanser.
Når du har lagt til oppgavene, avslutt med å lagre filen og avslutte. Alle instruksjonene som blir gitt vil bli lest og utført av cron-demonen. Endringene vil bli brukt selv uten å starte systemet på nytt, da depotet oppdateres automatisk.
Rediger crontab for en annen bruker
Crontab kan redigeres for forskjellige brukere ved hjelp av en kommando i syntaksen nedenfor:
crontab -u annet_brukernavn -e
Hvordan bruke spesialtegn i crontab-kommandoer
Tegn og operatører dikterer mer tilpasning av systemet ditt ettersom de utvider mulighetene til en cron-oppgave.
- Slash brukes til å dele en tidsstreng i spesifiserte trinn. For eksempel, for å kjøre en sikkerhetskopi hvert 30. minutt, kan vi bruke:
* / 30 * * * *
- Stjernen (*) brukes til å utføre alle verdiene som skal utføres. For eksempel:
* / 15 ***
- Dash (-) brukes til å bestemme rekkevidden av aktiviteter, for eksempel antall dager. Til
For eksempel, kjører vi koden klokka 6 hver hverdag, vil vi bruke;
0 6 * * 1-5 / root / backup.sh
Her står 06 for 6 am 1-5 står for antall dager (mandag til fredag).
- Et komma spesifiserer de enkelte forekomster når koden skal kjøres:
0 4 * * 2,4 / root / backup.sh
Kommandoen ovenfor vil utføre skriptkoden din klokka 4 på tirsdag og torsdag.
- Du kan også kombinere forskjellige jokertegn for å tilpasse kommandoene dine enda mer. For eksempel, for å utføre skriptet vårt annenhver dag 35 minutter over timen, kan vi bruke kommandoen nedenfor:
35 1-23 / 2 * * * / sti / til / skript / skript.sh
1-23 angir antall timer, / 2 stiller intervallet til annenhver time.
Cron Options
- Liste opp alle cron-jobber
Det kan være lurt å liste opp cron-jobbene i systemet ditt uten å låse opp crontab-konfigurasjonsfilen. Dette kan gjøres ved å starte terminalen og skrive kommandoen nedenfor:
crontab -l
Den kommandoen viser alle cron-jobbene som finnes i systemet ditt.
- Slett alle crontab-jobber
For å slette alle crontab-kommandoer, kan du bruke kommandoen nedenfor:
crontab -r
- Slett en cron-jobb for en annen bruker.
crontab -r -u annet-brukernavn
Bruk strenger i Crontab
Strenger er uhyre nyttige verktøy for utviklere, da de unngår repeterende skriving av kodesegmenter. Heldigvis støtter crontabs forskjellige strengverdier. De inkluderer:
@hver time:
-samme som - “0 * * * *” (Utfører en gang hver time)@midnatt:
-samme som - “0 0 * * *“ (Utføres hver gang dag)@daglig:
samme som midnatt@ukentlig:
-samme som - “0 0 * * 0“ (Utføres hver gang uke)@månedlig:
-samme som - “0 0 1 * *” (Utfører en gang hver måned)@årlig:
-samme som - “0 0 1 1 *“ (Utføres en gang hver år)@årlig:
ligner på @ årlig@reboot:
Utført en gang etter hver omstart / omstart / oppstart.
Et godt eksempel; Hvis du har et backup-skript som du vil kjøre hver dag, bruk kommandoen nedenfor:
@daily / path / to / backup_script.sh
Eksempler på cron-jobber
Her er en liste over grunnleggende cron-jobber som kan brukes når du kommer i gang:
-
- Slik kjører du et skript hvert minutt:
* * * * * / din / skript / bane.sh
- Slik kjører du et skript hvert 40. minutt:
40 * * * * / din / skript / bane.sh
- Slik kjører du et skript hver time:
0 * * * * / din / skript / bane.sh
- Slik kjører du et skript hver midnatt:
0 0 * * * / din / skript / bane.sh
- Å kjøre et skript hvert 23. minutt etter midnatt, to og fire hver dag:
23 0-23 / 2 * * * / din / skript / bane.sh
- Å kjøre et skript klokka 4.05 hver søndag.
5 4 * * sol / din / skript / bane.sh
- Å kjøre et skript klokka 22.00 i løpet av uken.
0 22 * * 1-5 / din / skript / bane.sh
- Å kjøre et manus 1. desember - Midnatt.
0 0 0 12 * / din / skript / bane.sh
- Å kjøre et manus lørdag ved midnatt.
0 0 * * 6 / din / skript / bane.sh
- Å kjøre et skript hver time.
0 * * * * / din / skript / bane.sh
- Slik kjører du et skript hvert minutt:
Med disse grunnleggende eksemplene vil du få en dypere forståelse av sekvensen og hvordan den kan modifiseres.
Begrensning av Cron-tilgang
Vi ser at cron-jobber kan være ganske nyttige, spesielt når du vil automatisere oppgavene dine. Det kan imidlertid også være risikabelt hvis systemet tillater enhver bruker å lage en cron-jobb. Selv om det ikke påvirker personlige data, kan noen cron-jobber ta ganske mye systemressurser, og dermed forsinke PCen. For å unngå slike scenarier kan systemadministratoren (rotbrukeren) opprette en / etc / cron.tillate
eller / etc / cron.benekte
filen som bare inneholder brukere som kan 'skape / ikke-skape' en cron-jobb.
De / etc / cron.tillate
filen inneholder brukere som kan opprette, redigere, vise eller fjerne crontab-filer. Hvis denne filen ikke eksisterer, kan alle brukere opprette og administrere andre cron-jobber enn de i / etc / cron.benekte
fil. Hvis ingen av disse filene er til stede, kreves det superbrukerrettigheter for å kjøre crontab-kommandoen.
Nå som du har forhindret ikke-root-brukere fra å opprette cron-jobber hvis de allerede hadde noen, kan du vurdere å legge til cron-jobber i root crontab-filen. Men her er et puslespill - Ved å legge til sine cron-jobber i root crontab, kjører ikke cron-jobbene deres som root? Vel, her kommer viktigheten av USERNAME-feltet vi diskuterte ovenfor i cron-kommandosyntaks. For eksempel kommandoen nedenfor:
0 * * * * fosslinux / path / to / script.sh
Vil kjøre som bruker “fosslinux” cron-jobb og ikke som rotbruker.
Konklusjon
Du har nå en klar guide om bruk av Cron-jobber for å automatisere ulike oppgaver på systemet ditt. Det burde ikke forvirre deg med oppstartsprogrammer. Bruk eksemplene ovenfor for å prøve å automatisere enkle skript. Med tiden kan du kombinere spesialtegn og jokertegn for å utføre mye mer verdslige oppgaver. Hvis du akkurat har begynt, ville det være flott å lese innlegget vårt på bash scripting tutorial med eksempler som vil hjelpe deg med å lage ditt første script.