Movatterモバイル変換


[0]ホーム

URL:


Naar inhoud springen
Wikipediade vrije encyclopedie
Zoeken

Cronjob

Uit Wikipedia, de vrije encyclopedie

Eencronjob is eenUnix-commando dat automatisch op gezette tijden wordt uitgevoerd met behulp van de systeemdienstcron. Cronjobs worden gebruikt in Unix en Unix-achtige systemen alsLinux,BSD enApple Macintosh. Het commando kan een of meer scripts of programma's uitvoeren, en draait in de achtergrond (alsbatch job).

Een cronjob wordt gespecificeerd als regel in eencrontab, een configuratiebestand vancron; zo'n regel specificeert wanneer de job moet worden uitgevoerd en het uit te voeren commando.

De naamcron is afgeleid van het Engels/Griekse voorvoegselchrono-, dattijd betekent. Eenjob is een vooraf afgesproken taak.

Cronjobs moeten niet verward worden met diensten (services, in de Unix-wereld traditioneeldaemon genoemd). Een dienst is een permanent beschikbare voorziening die op een binnenkomend verzoek of signaal een taak verricht, terwijl een cronjob een taak verricht op de in de crontab ingestelde momenten.

Vaak worden Cronjobs gebruikt voor het ophalen van dee-mail, het verzenden van e-mail of het controleren op updates. Als een Cronjob op een(web)server wordt gebruikt, is dat vaak om eenback-up van eendatabase te maken, eenPHP ofperl script aan te roepen of een servercommando uit te voeren. De meeste webhosters bieden cronjobs aan in een control panel zoalsPlesk of DirectAdmin.

Cronjobs kunnen worden vergeleken met de taakplanner onderMicrosoft Windows en werken exact hetzelfde. Voor wie cronjobs via determinal lastig in te stellen vindt, zijn er verschillende programma's met eengrafische gebruikersomgeving (GUI) waarmee via een paar muisklikken een cronjob aangemaakt kan worden.

Geschiedenis

[bewerken |brontekst bewerken]

InSeventh Edition Unix, bevond zich al eencron-service, ontwikkeld doorBrian Kernighan, die aangeroepen wordt vanuit /etc/inittab wanneer het systeem werd opgestart in multi-user mode. Vervolgens doorloopt het systeem het volgende proces:

Uitlezen van /usr/etc/crontab. Er wordt gekeken of er cronjobs zijn, zoja dan worden ze gestart door de root. Indien er meerdere cronjobs zijn wordt deze stap herhaald. Er wordt op elk moment gekeken of er een cronjob uitgevoerd moet worden en zo nodig wordt dat ook gedaan. Dit was het simpele maar werkende begin van de cronjobs die we tegenwoordig kennen.

Syntaxis

[bewerken |brontekst bewerken]

Een cronjob wordt gemaakt met het commandocrontab. De tijddspecificatie in een cronjob kan de volgende tekens bevatten:

TekenCommando
*Herhalen (minuten, uren, dagen, weken, maanden, jaren)
*/5Herhalen iedere 5 (minuten, uren, dagen, weken, maanden, jaren)
5Uitvoeren op de 5e (minuten, uren, dagen, weken, maanden, jaren)
5-10Uitvoeren op de 5e t/m de 10e (minuten, uren, dagen, weken, maanden, jaren)
5,10,15,16,17Uitvoeren op de 5e, 10e, 15e, 16e en 17e (minuten, uren, dagen, weken, maanden, jaren)
30-36/2Uitvoeren op de 30e, 32e, 34e en 36e (minuten, uren, dagen, weken, maanden, jaren)

en in sommige versies ook het volgende:

CommandoOmschrijvingVergelijkbaar aan
@rebootEenmaal uitvoeren bij opstarten.n.v.t.
@yearlyEenmaal uitvoeren per jaar0 0 1 1 *
@annuallyEenmaal uitvoeren per jaar0 0 1 1 *
@monthlyEenmaal uitvoeren per maand0 0 1 * *
@weeklyEenmaal uitvoeren per week0 0 * * 0
@dailyEenmaal uitvoeren per dag0 0 * * *
@midnightEenmaal uitvoeren per dag0 0 * * *
@hourlyEenmaal uitvoeren per uur0 * * * *

De cronjobs moeten worden ingesteld via de volgende volgorde:

<minuten> <uren> <dagen> <maanden> <weekdagen> <commando>

Het overzicht hieronder maakt duidelijk wat de mogelijke opties zijn.

.---------------- Minuut (0 - 59) |  .------------- Uur (0 - 23)|  |  .---------- Dag van de maand (1 - 31)|  |  |  .------- Maand (1 - 12) of januari, februari, maart... |  |  |  |  .---- Dag van de week (0 - 6) (zondag is 0 of 7) of zondag, maandag, dinsdag... |  |  |  |  |*  *  *  *  *  commando dat uitgevoerd moet worden

Voorbeelden

[bewerken |brontekst bewerken]

Allereerst moet het script uitvoerbaar gemaakt worden door middel vanchmod. Het script moet een header of meta tag hebben om de parser of terminal te laten weten met wat voor bestand het te maken heeft. De allereerste regel ziet er als volgt uit:

#!/pad/naar/bash

De cronjob ziet er dan zo uit:

* * * * * /pad/naar/script

De bovenstaande code kan ook gecombineerd worden tot de volgende cronjob:

* * * * * /pad/naar/bash /pad/naar/script

Speciale tekens en valkuilen

[bewerken |brontekst bewerken]

Detijdstipaanduiding kan met speciale tekens worden uitgebreid:

komma (,) voor het opsommen van meer dan 1 tijdstip, bijvoorbeeld 10,20,30 voor het aangeven van elke 10, 20 en 30 minuten/uren/dagen van de maand

liggend streepje (-), voor het aangeven van een reeks, bijvoorbeeld 2-5 voor het aangeven van de reeks 2,3,4,5

Hetcommando kan met een speciaal teken worden uitgebreid:

procent teken (%), voor het aangeven van het einde van het commando en het begin van commando invoer. Dit is eenvalkuil voor cronjob gebruikers die een commando dat al een %-teken bevat willen gebruiken. Als een commando dat een % teken bevat wordt overgenomen naar de cronjob regel, dan moet het procent teken worden voorzien van een escape-teken, dus worden ingevoerd als \%

Overgenomen van "https://nl.wikipedia.org/w/index.php?title=Cronjob&oldid=68646485"
Categorieën:

[8]ページ先頭

©2009-2025 Movatter.jp