Hvis du er kjent med Linux, vil du vite at Cron er applikasjonen som brukes til å planlegge og automatisere oppgaver i et Linux-miljø. CronTab er kommandoen som brukes til å få tilgang til Cron-filen der brukeren kan angi og planlegge oppgaver. Nei, jeg har ikke feilspilt CronTab i tittelen, CornTab er en nettbasert GUI som lar deg sette tidsplanen og kommandoer, og deretter bare kopiere og lime den inn i cron-filen.

Det finnes andre GUI-programmer som er enkle å redigere cron, for eksempel Gnome-Schedule. Men hvis du ikke vil installere noen nye programmer, er Corntab en flott nettbasert løsning, spesielt hvis du setter opp en cron-jobb på en datamaskin som ikke har Gnome-Schedule, eller ikke er kompatibel med den.

Brukerne til cron er ganske åpenbare, alt fra planlegging av sikkerhetskopier til å kjøre egendefinerte skript på bestemte tidspunkter, for å åpne programmer på en tidsplan, cron er måten å få det gjort.

La oss starte med å planlegge en oppgave som bare lager en tidsstempel hvert minutt til en loggfil, først ved hjelp av shell / kommandolinjen. Så løper vi gjennom de samme trinnene med Corntab, slik at du kan se hvor lett det er å bruke. Å lage en tidsstempel eller en hvilken som helst utgang til en loggfil er en fin måte å teste på at innstillingene dine i cron fungerer, og selvfølgelig å overvåke timeplanen din fremover.

Åpne en terminal. Før vi starter, er det best å vite hvor du skal gå for informasjon. Håndboken for crontab finner du ved å skrive:

 mann crontab 

Jo, du kan Google og finne andre opplæringsprogrammer og sannsynligvis de manuelle sidene på nettet, men det er alltid godt å kjenne deg rundt kommandolinjen!

Syntaxen for cron er som følger:

 crontab [-u bruker] fil crontab [-u bruker] [-i] {-e | -l | -r} [-s] 
  • -l alternativet forårsaker at strømbryteren vises på standardutgang.
  • -r alternativet forårsaker at gjeldende crontab blir fjernet.
  • -e alternativet brukes til å redigere gjeldende crontab ved hjelp av et redigeringsprogram som er spesifisert av VISUAL eller EDITOR miljøvariablene.
  • -u alternativet angir navnet på brukeren hvis crontab skal tweaked. Hvis dette alternativet ikke er gitt, vil crontab bruke den nåværende brukeren som utfører kommandoen.
  • -s alternativ legger til den nåværende SELinux sikkerhets kontekststrengen som en MLS_LEVEL innstilling til crontab filen før redigering / utskifting skjer (se dokumentasjonen for MLS_LEVEL i crontab. Dette brukes ikke i alle variasjoner av Linux / cron).

Vær oppmerksom på at enkelte programmer må utføres med root-privilegier. Når dette er tilfelle, må du bytte til rotbrukeren med su kommandoen, eller sudo kommandoen som skal fungere i de fleste Linux-variasjoner (Debian, Ubuntu, Fedora).

Slik redigerer du crontab-typen:

 crontab -e 

eller

 sudo crontab -e 

Noen grunnregler for cron

  • Et felt kan være en stjerne (*), som alltid står for "forrige".
  • m -minute (0-59)
  • h-time (0-23)
  • dom-dagen av måneden (1-31)
  • mon-måneden av året (1-12)
  • dow-dag i uken (0-6 med 0 = søndag)
  • kommando-applikasjon, skript, etc.

Avansert kortkoder:

streng betydning
- ---
@reboot Kjør en gang, ved oppstart.
@år Kjør en gang i året, "0 0 1 1 *".
@ årlig (samme som @ år)
@monthly Kjør en gang i måneden, "0 0 1 * *".
@ ukentlig Kjør en gang i uken, "0 0 * * 0".
@daily Kjør en gang om dagen, "0 0 * * *".
@ midnatt (samme som @ daglig)
@hourly Kjør en gang i timen, "0 * * * *"

Kommaseparerte verdier kan brukes til å kjøre mer enn en forekomst av en bestemt kommando innen en tidsperiode.

Dash-separerte verdier kan brukes til å kjøre en kommando kontinuerlig.

La oss sette opp vår cronjob.

Hvis du først skriver inn crontab, får du sannsynligvis et valg av redaktør å bruke. Du er velkommen til å velge noen, men jeg holder normalt med nano siden det er enkelt, rent og får jobben gjort.

For å oppnå vår opprinnelige oppgave, skriv bare:

 * * * * * echo "Nåværende minutt er: $ (dato)" >> /tmp/minute.log 

"Control-x" vil spørre om å lagre, så skriv inn vil bekrefte. Du bør se at cron ble oppdatert. Jobben vil skrive ut gjeldende dato / klokkeslett hvert minutt til en fil som heter minute.log i / tmp-katalogen.

Her er automatisk utgang i 6 minutter:

La oss få lyst, hva med å skrive ut datoen hvert 2. minutt ...

 * / 2 * * * * echo "Nåværende minutt er: $ (dato)" >> /tmp/minute.log 

Ved å bruke * / n hvor n er et positivt heltall vil si hvert n minutt, eller hver n time.

Hva med å skrive ut datoen klokka 5:30 hver mandag og fredag:

 30 5 * * 1, 5 ekko "Nåværende minutt er: $ (dato)" >> /tmp/minute.log 

Ta gjerne med å planlegge enkelt "ekko" til loggfilene. Deretter går du opp til skript og applikasjoner.

Spille med Corntab

La oss nå prøve CornTab, den webbaserte cron-redaktøren som vil ta vare på syntaksen mens vi bare klikker på alternativene.

Her er et steg for steg å lage en crontab som vil skrive ut gjeldende dato / tid hvert 2. minutt, bare i januar, februar, mars og april, på torsdag og fredag.

Først klikker du på "hvert n minutt" og flytter glidebryteren til 2 minutter.

Klikk deretter for å utvide måned, klikk for å velge "hver valgt måned" og velg Jan, Feb, Mar, Apr.

Deretter klikker du for å utvide Dagens uke, velg "hver valgt ukedag" og velg Thu og Fri.

Til slutt, klikk for å utvide kommandoen og skriv inn koden / skriptet. Deretter kan du kopiere full cron-koden fra Corntab og lime den inn i crontab ved å bruke trinnene i begynnelsen av denne artikkelen.

Referanser og mer informasjon om Cron:

http://www.pantz.org/software/cron/croninfo.html
http://www.computerhope.com/unix/ucrontab.htm
https://help.ubuntu.com/community/CronHowto