Hvis du er bekendt med Linux, vil du vide, at Cron er applikationen, der bruges til at planlægge og automatisere opgaver i et Linux-miljø. CronTab er den kommando, der bruges til at få adgang til Cron-filen, hvor brugeren kan indstille og planlægge opgaver. Nej, jeg missede ikke CronTab i titlen. CornTab er et webbaseret GUI, der giver dig mulighed for at indstille din tidsplan og kommandoer, og så skal du blot kopiere og indsætte den i din cron-fil.

Der er andre GUI apps bygget til nemt at redigere cron, som Gnome-Schedule. Men hvis du ikke vil installere nye apps, er Corntab en fantastisk web-baseret løsning, især hvis du opretter et cron-job på en computer, der ikke har Gnome-Schedule eller ikke er kompatibel med det.

Anvendelserne til cron er ret indlysende, alt fra planlægning af sikkerhedskopier til at køre brugerdefinerede scripts på bestemte tidspunkter, for at åbne programmer på en tidsplan, cron er vejen for at få det gjort.

Lad os starte med at planlægge en opgave, der simpelthen opretter en tidsstempel hvert minut til en logfil, først ved hjælp af shell / kommandolinjen. Så løber vi gennem de samme trin ved hjælp af Corntab, så du kan se, hvor nemt det er at bruge. Oprettelse af en tidsstempel eller output til en logfil er en fantastisk måde at teste på, at dine indstillinger i cron fungerer, og selvfølgelig at overvåge din tidsplan fremad.

Åbn en terminal. Før vi starter, er det bedst at vide, hvor de skal henvende sig til information. Manualen til crontab kan findes ved at skrive:

 mand crontab 

Sikker på, du kan Google og finde andre vejledninger og sandsynligvis de manuelle sider online, men det er altid godt at kende din vej omkring kommandolinjen!

Syntikken for cron er som følger:

 crontab [-u bruger] fil crontab [-u bruger] [-i] {-e | -l | -r} [-s] 
  • -l mulighed medfører, at den nuværende crontab vises på standard output.
  • -r indstilling forårsager, at den nuværende crontab fjernes.
  • -e indstilling bruges til at redigere den nuværende crontab ved hjælp af en editor, der er angivet af VISUAL eller EDITOR miljøvariablerne.
  • -u indstilling angiver navnet på den bruger, hvis crontab skal tweaked. Hvis denne mulighed ikke er givet, bruger crontab den nuværende bruger, der udfører kommandoen.
  • -s option tilføjer den aktuelle SELinux-sikkerhedskontekststreng som en MLS_LEVEL-indstilling til crontab-filen, før redigering / udskiftning sker (se dokumentationen af ​​MLS_LEVEL i crontab. Dette bruges ikke i alle variationer af Linux / cron).

Bemærk at nogle programmer skal udføres med root privilegier. Når dette er tilfældet, skal du skifte til root-brugeren med su kommandoen eller sudo kommandoen, som skal fungere i de fleste Linux-variationer (Debian, Ubuntu, Fedora).

At redigere din crontab type:

 crontab -e 

eller

 sudo crontab -e 

Nogle grundregler for cron

  • Et felt kan være en stjerne (*), som altid står for "first-last".
  • m-minute (0-59)
  • h-time (0-23)
  • dom-dag i måneden (1-31)
  • mon-måneden af ​​året (1-12)
  • dow-døgn i ugen (0-6 med 0 = søndag)
  • kommando-applikation, script osv

Avancerede kortkoder:

streng betydning
- ---
@reboot Kør en gang, ved opstart.
@yearly Kør en gang om året, "0 0 1 1 *".
@ årligt (samme som @ år)
@monthly Kør en gang om måneden, "0 0 1 * *".
@weekly Kør en gang om ugen, "0 0 * * 0".
@Daily Kør en gang om dagen, "0 0 * * *".
@ midnat (samme som @ dagligt)
@hourly Kør en gang i timen, "0 * * * *"

Kommaseparerede værdier kan bruges til at køre mere end en forekomst af en bestemt kommando inden for en tidsperiode.

Dash-separerede værdier kan bruges til at køre en kommando kontinuerligt.

Lad os oprette vores cronjob.

Hvis du først indtaster crontab, får du sandsynligvis et valg af editor til brug. Du er velkommen til at vælge nogen, men jeg holder normalt med nano, da det er simpelt, rent og får jobbet færdigt.

For at opnå vores oprindelige opgave skal du blot skrive:

 * * * * * echo "Den nuværende minut er: $ (dato)" >> /tmp/minute.log 

"Control-x" vil spørge om at gemme, så indtastes, vil bekræfte. Du skal se, at cron blev opdateret. Jobbet udskriver den aktuelle dato / tid hvert minut til en fil kaldet minute.log i / tmp-biblioteket.

Her er det automatiske output i 6 minutter:

Lad os få lyst, hvad med at udskrive datoen hvert andet minut ...

 * / 2 * * * * echo "Den aktuelle minut er: $ (dato)" >> /tmp/minute.log 

Brug af * / n hvor n er et positivt heltal vil sige hvert n minut eller hver n time.

Hvad med at udskrive datoen klokken 5:30 hver mandag og fredag:

 30 5 * * 1, 5 ekko "Det nuværende minut er: $ (dato)" >> /tmp/minute.log 

Du er velkommen til at spille rundt med at planlægge simpel "ekko" til logfiler. Gå så videre til scripts og applikationer.

Spille med Corntab

Lad os nu prøve CornTab, den web-baserede cron editor, der vil tage sig af syntaksen, mens vi bare klikker på indstillingerne.

Her er et skridt for skridt for at skabe en crontab, der udskriver den aktuelle dato / tid hvert andet minut, kun i januar, februar, marts og april, torsdag og fredag.

Først skal du klikke på "hvert minut" og flytte skyderen til 2 minutter.

Klik derefter for at udvide måneden, klik for at vælge "hver valgt måned" og vælg Jan, Feb, Mar, Apr.

Klik derefter på for at udvide Ugedag, vælg "hver valgt dag i ugen" og vælg Thu og Fri.

Endelig skal du klikke for at udvide kommandoen og skrive i koden / scriptet. Derefter kan du kopiere den fulde cron-kode fra Corntab og indsætte den i din crontab ved at bruge trinene i starten af ​​denne artikel.

Referencer og mere information om Cron:

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