Cron-opdrachten. De Taakplanner instellen – Crontab

In het Unix-besturingssysteem is het mogelijk om gebruikersprogramma's te starten op een door de gebruiker opgegeven tijdstip. Voor dit doel wordt het gebruikt cron-programma, dat instructies van gebruikers ontvangt en, na deze, alle taken uitvoert volgens de ontvangen scripts. Onze klanten kunnen deze functie gebruiken om periodieke taken uit te voeren.

Hoe cron in te stellen in uw persoonlijke account (voor Unix-tarieven)

Omdat niet alle PHP-programma's zonder voorafgaande wijziging door de SAPI CLI kunnen lopen, kunt u ze wel doorlopen wg. Bijvoorbeeld:

/usr/local/bin/wget -O /dev/null -q http://mijnsite.tld/cron.php?action=123

Als het script functies gebruikt vereisen, erbij betrekken, en dat geven ze aan relatieve paden, gebruik dan aan het begin van het uitgevoerde script een functieaanroep chdir(), waarmee de huidige werkmap wordt ingesteld.

Hoe u foutmeldingen kunt ontvangen van programma's die door cron worden uitgevoerd

Als u fouten tegenkomt tijdens het uitvoeren van een programma dat vanuit cron draait, wilt u waarschijnlijk foutmeldingen ontvangen, zodat u de prestaties van periodiek uitgevoerde taken volledig kunt controleren. Om dit te doen plaats je de volgende regel aan het begin van het cron-script:

[email protected]

Zeker, [email protected] je moet het vervangen door een echt e-mailadres waarop meldingen worden afgeleverd. Als u foutmeldingen op meerdere adressen wilt ontvangen, geeft u al deze adressen op, gescheiden door komma's.

Houd er rekening mee dat cron per e-mail zal verzenden wat de actieve scripts uitvoeren. Als u bijvoorbeeld een script schrijft dat de regel 'Hallo wereld' afdrukt en dit door cron laat lopen, ontvangt u elke keer dat cron een dergelijk script uitvoert een e-mail met de regel 'Hallo wereld'.

Om dit te voorkomen, bijvoorbeeld als u de tekstuitvoer door het script niet nodig heeft, moet u de tekens toevoegen

> /dev/null 2>&1

De volledige regel voor cron ziet er als volgt uit:

0 1 * * * /usr/local/bin/php -q $HOME/script.php > /dev/null 2>&1

We raden u aan de juiste syntaxis te controleren van scripts die u hebt ingesteld om via cron te worden uitgevoerd. Scripts kunnen een fout bevatten, werken mogelijk niet hetzelfde als ze via een webserver en via cron worden uitgevoerd, enzovoort. Om er zeker van te zijn dat het script correct werkt via cron, controleer je het eerst met dit commando in Unix-shell:

/usr/local/bin/php -l script.php

Als er geen fouten in het script voorkomen, ziet u de melding “Geen syntaxisfouten gedetecteerd in script.php”.

Beperkingen

Voor programma's die via cron worden gestart, gelden dezelfde beperkingen op de verbruikte bronnen als voor processen die door de gebruiker in de Unix-shell worden gestart. Het gaat over over beperkingen op de uitvoeringstijd van het programma, het nummer beschikbaar geheugen, beperkingen voor de bestandsgrootte, enzovoort.

Ik heb veel gehoord over hoe Linux een handige cron-taakplanner heeft. Ik had het echter niet nodig om het te gebruiken, en ik wilde de instellingen ervan niet begrijpen... de console, veel Engelse letters... het was eng. Maar gelukkig waren mijn angsten tevergeefs: tot in de basis is alles eenvoudig. In het artikel wordt bekeken hoe u de uitvoering van uw scripts volgens een schema kunt instellen, en als voorbeeld zullen we de “koekoek” installeren.

Eerst iets over hoe het in het algemeen werkt.

Wanneer het systeem opstart, start de cron-daemon. Het kan worden bestuurd (stop/start/status controleren) met het commando: sudo service cron (stop/start/status). Maar dit is zelden nodig.

De cron-daemon zelf slaapt het grootste deel van de tijd en opent op dat moment zijn oog een beetje om te controleren of er opdrachten zijn. Als er geen taken zijn, gaat hij weer in winterslaap.

Taken bevinden zich in bestanden met namen die gelijk zijn aan gebruikersnamen, en de bestanden zelf bevinden zich in de map /var/spool/cron/crontabs. De map is beschermd tegen inmenging van buitenaf en is alleen toegankelijk voor de superuser. Maar elke gebruiker kan een schema voor zijn taken opstellen zonder het root-wachtwoord (superuser) te kennen.

Naar cron instellen Voor een gewone gebruiker typt u gewoon:

Als u een taak voor een andere gebruiker wilt maken, start u deze met de opdracht:

sudo crontab -u gebruiker -e

In plaats van gebruiker schrijven we de gewenste gebruiker, bijvoorbeeld wortel.
Wanneer je voor het eerst start, zal er een vraag zijn over de editor... Ik hou van nano. Het is eenvoudig en werkt zonder GUI.


De syntaxis voor taken is heel eenvoudig. Laten we een voorbeeld bekijken uit een screenshot van het lanceren van een koekoek:

0 */1 * * * /home/zegi/bin/kuku

Er zijn 2 hoofdvelden in de taak: 0 */1 * * * - geeft het tijdstip aan waarop de opdracht wordt geactiveerd. En /home/zegi/bin/kuku is het pad naar het script dat de opdracht(en) beschrijft.

Er zouden geen problemen moeten zijn met het adres van het script (zegi is de gebruikersnaam... vergeet niet de jouwe in te voeren). Maar we moeten uitleggen hoe we de cron-tijd voor scriptuitvoering kunnen instellen.

In totaal hebben we 5 invoercellen, gescheiden door een spatie.
1 - minuten (cijfers van 0 tot 59)
2 - uur (van 0 tot 23)
3 - dag van de maand (van 1 tot 31)
4 - maand van het jaar (van 1 tot 12... februari is bijvoorbeeld 2)
5 - dag van de week (van 1 tot 7. De westerse week wordt gebruikt, waarbij het begin zondag is, d.w.z. zo-1, ma-2, di-3, wo-4, do-5, vr-6, za - 7).

Elke cel moet worden ingevuld. Als u wilt dat de opdracht elke maand wordt uitgevoerd, stel dan in * op het 4e veld. Hetzelfde geldt voor de andere velden.

Laten we terugkeren naar het koekoeksvoorbeeld, waarbij het script elk uur wordt uitgevoerd. Om de frequentie in te stellen wordt deze gebruikt / . Als u bijvoorbeeld wilt dat de taak elke 5 minuten wordt uitgevoerd, op maandag, stelt u het volgende in:

Als u wilt dat de taak elk uur wordt uitgevoerd, moet u een specifieke minuut instellen. Als u een asterisk (* */1 * * *) achterlaat, wordt de kroon elke minuut uitgevoerd - omdat aan de voorwaarden is voldaan: alle 5 cellen zijn gecontroleerd en hun waarde komt overeen met de huidige tijd (minuten - het maakt niet uit Uren - elk uur, en niet alleen bepaalde uren).
De schuine streep moet altijd worden voorafgegaan door een asterisk. Het zal bijvoorbeeld niet werken om elke minuut vanaf de 30e een uitvoering toe te wijzen door 30/1 in te voeren.

Als het nodig is dat de taak niet cyclisch, maar meerdere keren wordt uitgevoerd, worden de waarden gescheiden door komma's geschreven.
U moet bijvoorbeeld op weekdagen om 12.00 uur en 18.00 uur een taak voltooien. Dan ziet het er zo uit:

* 12,18 * * 2,3,4,5,6

Wanneer u klaar bent met het bewerken van taken, vergeet dan niet de wijzigingen op te slaan (Ctrl+O > enter), en sluit vervolgens af (Ctrl+x).

Cron moet melden dat er een nieuwe taak is verschenen en klaar is om deze uit te voeren door te schrijven: "crontab: nieuwe crontab installeren".

De aangemaakte taken (misschien heb je zelf niets gedaan, maar de netwerkbeheerder heeft iets voor je geconfigureerd) kun je bekijken met het commando:

En uiteindelijk mezelf koekoek script, die elk uur koekoeken:

#!/bin/bash
h=`datum +%l`
terwijl [ $h -gt 0 ]
Doen
speel ~/kukushka.wav
h=$[$h-1]
klaar

Je kunt het koekoeksgeluid downloaden met het commando:

wget http://dl.dropbox.com/u/24844052/tuksik/kukushka.wav

Spelen is inbegrepen in het soxpakket. In ubuntu kun je het installeren met het commando.

Heel vaak moet u op Linux-achtige systemen enkele routinematige processen automatiseren. Hiervoor worden speciale planners gebruikt. Een van de bekendste is Cron, waarvan de instellingen in dit artikel zullen worden besproken.

Wat is Cron?

De naam van het programma is afgeleid van het Griekse ‘chronos’, wat tijd betekent. Wat eigenlijk logisch is. De taak van de demon is om bepaalde momenten voer de opdrachten uit die erop zijn geschreven. Het implementatieproces zelf is gebaseerd op het controleren van de kroontabellen en het vergelijken ervan met en in de tijd.

crontab-bestand

Het belangrijkste element bij het instellen van Cron is het crontab-configuratiebestand. Het bevat uitvoeringsopdrachten en paden naar scripts. Ze draaien allemaal als superuser. Omdat ze zich in de map /etc/cron.d bevinden, moeten deze bestanden daar worden geconfigureerd.

Voor iedereen individuele gebruiker Het systeem gebruikt een eigen crontabbestand.

Verschillende Linux-distributies gebruiken verschillende mappen voor opslag aangepaste instellingen. Voor RedHat is dit var / spoel/cron. Op Debian en Ubuntu zal dit var/spool/cron/crontabs zijn. En var/spool/cron/tabs in SUSE.

Lijst met opdrachten voor het beheren van crontab

Cron heeft een reeks speciale richtlijnen die kunnen worden gebruikt om de planner te besturen. Ze moeten worden gebruikt in combinatie met crontab. Hier is een kleine lijst:

  • -u gebruikersnaam. Stelt de gebruiker in wiens taken en instellingen worden verwerkt verdere acties. Als je het nalaat gegeven sleutel, wordt de standaardgebruiker ingesteld.
  • -l. Toont de huidige lijst met taken.
  • -e. Start de editor voor de taakplanner.
  • -R. Verwijdert alle bestaande taken uit de lijst.

Taakformaat

Zoals hierboven vermeld, bestaat het instellen van Cron uit het opgeven van opdrachten in speciaal bestand. Het lijkt erop eenvoudige invoer, bestaande uit zes kolommen:

  • de eerste geeft het aantal minuten aan. Het beschikbare bereik loopt van 0 tot 59. U kunt meerdere waarden gebruiken, bereik en speciale karakters;
  • tweede kolom - uren. Er kunnen waarden van 0 tot 23 worden gebruikt;
  • volgende dag. Hier kunt u een getal opgeven van 1 tot en met 31;
  • de vierde is een maand. Minimale waarde 1, maximaal - 12;
  • vijfde - week. 0 of 7 komt overeen met zondag;
  • Het laatste commando is het commando zelf.

Zoals gezegd kunt u speciale tekens, "*" of "/", in het bestand opgeven. Een dergelijke invoer is bijvoorbeeld 23 */2 *** echo "Run" betekent dat elk even uur en 23 minuten de inscriptie "Run" wordt weergegeven.

Kenmerken van het crontab-bestand

Wanneer u Cron instelt, moet u er rekening mee houden dat deze specifieke eigenschappen heeft waarmee rekening moet worden gehouden bij het configureren:

  • elk bestand moet eindigen lege regel, anders laatste punt kan worden genegeerd, en soms het hele bestand;
  • bestanden in mappen met een punt in hun naam worden ook genegeerd door de planner;
  • U kunt hekje-symbolen “#” gebruiken in configuratiebestanden. Ze worden gebruikt om lijnen met commentaar te markeren. Dit is erg handig voor het beschrijven van geplande taken en opdrachten.

Aanvullende variabelen

Bij het instellen van Cron kunt u speciale waarden en afkortingen in opdrachten gebruiken. U kunt bijvoorbeeld de volgende lijst gebruiken om de dag van de week op te geven:

  • zon - zondag;
  • ma - maandag;
  • di - dinsdag;
  • wo - milieu;
  • do - donderdag;
  • vrijdag - vrijdag;
  • zat - zaterdag.

Er zijn ook aparte letterwaarden voor maanden: jan, feb, mrt, apr, may, jun, jul, aug, sep, oct, nov, dec.

Er zijn ook afzonderlijke variabelen voor het configureren van Cron die volledige opdrachtregels kunnen vervangen:

  • @reboot. De opdracht wordt elke keer uitgevoerd wanneer u de computer opstart;
  • @jaarlijks. Deze taak zal één keer per jaar gelanceerd worden. De equivalente notatie in numerieke vorm zou kunnen zijn: 0 0 1 1 *. Het synoniem kan ook worden geschreven als @annually;
  • @maandelijks. Zoals u uit de naam kunt afleiden, voert deze variabele de opdracht één keer per maand uit. Het numerieke analoog is 0 0 1 * *;
  • @wekelijks. Deze variabele wordt elke week uitgevoerd;
  • @dagelijks. Eenmaal per dag;
  • @middernacht. De lancering zal om middernacht plaatsvinden;
  • @uurlijks. Elk uur.

Cron instellen op Centos 7

Het installatie- en configuratieproces zelf verschilt niet veel van andere soortgelijke Linux-distributies. Voordat u Cron op Centos instelt, moet u het cronie-pakket op uw systeem installeren. U kunt dit doen met behulp van yum-opdrachten cronie installeren. Om een ​​bestand met instructies te maken, moet je crontab -e in de terminal uitvoeren. Alle systeeminstellingen Cron-bestanden worden opgeslagen in /var/spool/cron/username.

Enkele nuttige voorbeelden voor het maken van vaak herhaalde taken

Cron kan worden geconfigureerd om aan vrijwel alle behoeften van elke gebruiker te voldoen.

  • 00 09-17 * * 1 - 5 /pad/ naar het team/kroon. Deze opdracht voert automatisch elke werkdag van 9 tot 5 elke eerste minuut de geplande actie uit;
  • 00 9.17 * * * /pad/ naar het team/kroon. In dit voorbeeld wordt de opdracht twee keer per dag uitgevoerd. De eerste is om 9 uur, de tweede om 5 uur. Het teken "*" geeft aan dat de opdracht elke dag, maand en jaar wordt uitgevoerd;
  • Vergeet ook symbolische variabelen niet. @monthly voert de taak bijvoorbeeld elke maand uit in de eerste minuut van het eerste uur van de eerste dag. En @daily wordt elke dag gelanceerd.

Systeembeheerders en gewone gebruikers moeten vaak automatiseren diverse taken over onderhoud en werken met Linux met behulp van scripts. Het is erg handig, u voert gewoon het script uit en het doet alles wat nodig is zonder uw tussenkomst. De volgende stap in dit pad is het configureren van de automatische lancering van het gewenste script in juiste tijd.

Het zijn deze taken die Linux gebruikt systeem service cron. Dit is een planner waarmee u de scripts die u nodig heeft één keer per uur, één keer per dag, een week of een maand kunt uitvoeren, op elk door u opgegeven tijdstip of met een willekeurig interval. Het programma wordt vaak zelfs door andere diensten gebruikt besturingssysteem. In dit artikel zullen we bekijken hoe Cron is geconfigureerd en de belangrijkste veelgebruikte voorbeelden bekijken.

In feite is Cron een service, net als de meeste andere Linux-services, het begint bij het opstarten van het systeem en wordt uitgevoerd achtergrond. Haar voornaamste taak is om de juiste processen op het juiste moment uit te voeren. Er zijn er meerdere configuratiebestanden, waaruit hij informatie haalt over wat er moet gebeuren en wanneer. De service opent het bestand /etc/crontab, dat alle benodigde gegevens bevat. Vaak wordt in moderne distributies voorgeschreven om het run-parts-hulpprogramma te starten, dat wordt gestart benodigde scripts uit de volgende mappen:

  • /etc/cron.minutely- elke minuut;
  • /etc/cron.hourly- elk uur;
  • /etc/cron.daily- elke dag;
  • /etc/cron.weekly- elke week;
  • /etc/cron.maandelijks- elke maand.

Deze mappen moeten scripts bevatten die met het opgegeven interval moeten worden uitgevoerd. Scripts moeten uitvoeringsrechten hebben en hun naam mag geen punt bevatten. Dit maakt het werken met de planner voor nieuwe gebruikers zeer eenvoudig. Ook in het crontab-bestand bevindt zich de lancering van het anacron-commando, dat hetzelfde werkt als cron, alleen is het bedoeld voor taken die één keer over een lange periode moeten worden uitgevoerd, bijvoorbeeld één keer per dag, week, maand, jaar.

Hiermee kunt u ze uitvoeren, zelfs als de computer niet altijd werkt en van tijd tot tijd wordt uitgeschakeld. Vervaldatum van de taak laatste keer wordt naar het bestand /var/spool/anacron geschreven en de volgende keer dat anacron wordt gestart, wordt gecontroleerd of het is gestart vereiste proces op het juiste moment, en zo niet, dan wordt het gestart. De cron-service zelf is meer ontworpen om taken overdag uit te voeren of met een nauwkeurig geplande tijd en datum.

Cron instellen

Gebruik om de tijd, datum en het interval in te stellen waarop u een taak moet uitvoeren speciale syntaxis cron-bestand en speciaal elftal. Natuurlijk kunt u het bestand /etc/crontab altijd bewerken, maar dit wordt niet aanbevolen. In plaats daarvan is er een crontab-opdracht:

Het is altijd raadzaam om het uit te voeren met de optie -e, dan wordt uw standaard teksteditor gebruikt om de regels te bewerken. Het team gaat voor u open tijdelijk bestand, die al alle huidige cron-regels bevat en u nieuwe kunt toevoegen. Nadat de cron-opdracht is voltooid, wordt het bestand verwerkt en worden alle regels toegevoegd aan /var/spool/cron/crontabs/username, en worden de toegevoegde processen gestart precies vanaf de gebruiker van wie u ze hebt toegevoegd.

Daarom moet je hier voorzichtig zijn, en als je scripts als root moet uitvoeren, dan moet crontab als root worden uitgevoerd, en niet als gebruiker. Dit zorgt vaak voor problemen.

crontab-syntaxis

Zoals ik al zei, wordt de tijd ingesteld in een speciale syntaxis. Laten we eens kijken naar de syntaxis voor het instellen van een enkele cron-taak:

minuut uur dag maand dag_week /pad/naar/uitvoerbaar/bestand

Het moet gezegd worden dat het noodzakelijk is om te schrijven volledige pad aan de opdracht, omdat voor opdrachten die als cron worden uitgevoerd, de omgevingsvariabele PATH anders zal zijn en de service uw opdracht eenvoudigweg niet kan vinden. Dit is de tweede meest voorkomende oorzaak van problemen met Cron. Datum en tijd worden aangegeven met cijfers of het "*"-symbool. Dit symbool betekent dat het elke keer moet worden gedaan, als het in het eerste veld staat, dan elke minuut enzovoort. Laten we nu verder gaan met voorbeelden.

Voorbeelden van cron-instellingen

Ten eerste kun je cron-taken voor de superuser bekijken, hiervoor kun je de optie -l gebruiken:

U kunt alle bestaande taken verwijderen met het commando -r:

Laten we aannemen dat we ons script moeten uitvoeren op /usr/local/bin/serve als superuser. Een soort onderhoudsscript. Het eenvoudigste voorbeeld is om het elke minuut uit te voeren:

* * * * * /usr/local/bin/serve

0 * * * * /usr/local/bin/serve

We lanceren elke dag op de nulminuut van het nuluur, dit is om 12 uur 's nachts:

0 0 * * * /usr/local/bin/serve

0 0 1 * * /usr/local/bin/serve

Je kunt het op elke dag doen, bijvoorbeeld de 15e:

0 0 15 * * /usr/local/bin/serve

Op de eerste dag van de week van de eerste maand van het jaar, 0 uur 0 minuten:

0 0 * 1 0 /usr/local/bin/serve

Of op de nuldag van de week van elke maand:

0 0 * * 0 /usr/local/bin/serve

U kunt elke minuut, elk uur en elke dag van de week selecteren, bijvoorbeeld 15.30 uur op dinsdag:

30 15 * * 2 /usr/local/bin/serve

Maandag wordt beschouwd als de eerste dag, zondag is de zevende of nuldag. U kunt ook een afgekorte naam schrijven voor de dag van de week, bijvoorbeeld zon - zondag:

30 15 * * zon /usr/local/bin/serve

Om een ​​specifiek interval aan te geven, moet u bijvoorbeeld elk uur, van zeven uur 's ochtends tot zeven uur' s avonds, het symbool "-" gebruiken:

0 7-19 * * * /usr/local/bin/serve

Als u een opdracht meerdere keren moet uitvoeren, kunt u het scheidingsteken "," gebruiken. Laten we het script bijvoorbeeld elke dag om 5 en 35 minuten over vijf (16:05 en 16:35) uitvoeren:

5,35 16 * * * /usr/local/bin/serve

Mogelijk wilt u de tijd niet afzonderlijk opgeven, maar geeft u eenvoudigweg het interval op waarmee u het script wilt laten uitvoeren, bijvoorbeeld eens per 10 minuten. Gebruik hiervoor het schuine streepteken - "/":

*/10 * * * * /usr/local/bin/serve

Bovendien zijn er variabelen uitgevonden voor een aantal veelgebruikte sets, hier zijn ze:

  • @reboot- bij het laden slechts één keer;
  • @jaarlijks, @jaarlijks- één keer per jaar;
  • @maandelijks- één keer per maand;
  • @wekelijks- één keer per week;
  • @dagelijks, @middernacht- elke dag;
  • @uurlijks- elk uur.

Zo zou een opdracht om een ​​script eenmaal per uur uit te voeren er bijvoorbeeld eenvoudig uitzien:

@hourly /usr/local/bin/serve

Als je een script aan een van de mappen gaat toevoegen, dan moet je, zoals ik al zei, de naam ervan zonder punten hebben en uitvoeringsrechten hebben:

sudo vi /etc/corn.daily/basckup

Het script zou er zo uit moeten zien op een vergelijkbare manier. Nu je weet hoe je cron moet instellen, hoef je alleen nog maar te controleren hoe alles werkt.

Debugwerk

Nadat u de regels heeft ingesteld, wilt u ook controleren of ze werken. Om dit te doen, wachten we op het tijdstip waarop het script al zou moeten worden uitgevoerd en kijken we naar de cron-log. Soms bevindt het zich in /var/log/cron, en soms wordt het naar syslog geschreven. Ik heb bijvoorbeeld deze regel in mijn crontab:

Het zou elke dag om 19.40 uur moeten worden uitgevoerd, kijk nu naar het logboek:

grep CRON /var/log/syslog

En we zien in ons logboek dat het echt volledig succesvol is en wordt uitgevoerd. Als er fouten waren, werd er onmiddellijk een bericht weergegeven.

Als u een script moet controleren dat zich in een van de gespecialiseerde mappen bevindt, dan is het nog eenvoudiger: voer gewoon run-paths uit en geef het als parameter door de gewenste map of zelfs het script zelf:

sudo run-paden /etc/cron.daily/

Conclusies

In dit artikel hebben we gekeken naar hoe cron is geconfigureerd handig plannen automatische taken. Ik hoop dat deze informatie nuttig voor je was.

In het systeem Linux het automatisch starten van taken wordt uitgevoerd door de crond-daemon en het plannen ervan automatisch starten Niet alleen de systeembeheerder, maar ook gebruikers kunnen taken uitvoeren.

Hoe werkt crond?

Het principe van de crond-daemon is eenvoudig. Na het starten (meestal wanneer het systeem opstart) wordt de daemon elke minuut wakker en controleert of er programma's zijn gepland om op die minuut te worden uitgevoerd. Als dergelijke programma's worden gevonden, start de daemon ze en verzendt ze via e-mail berichten naar gebruikers die een lancering hebben gepland.

Taken plannen

Een planning maken is geen moeilijke taak. Het schema bevindt zich in een apart crontab-bestand. Elke regel van het bestand bevat een taak die op een specifiek tijdstip moet worden uitgevoerd.

Crontab-bestandsindeling

Het tijd-datumgedeelte bestaat uit vijf numerieke velden, gescheiden door spaties, die het tijdstip definiëren waarop de taak begint:

Voor het gemak van het invullen van deze velden zijn de volgende regels ingevoerd:

  • U kunt waarden opgeven als numerieke intervallen. Het interval 1-3 in het uurveld betekent bijvoorbeeld 1.00, 2.00 en 3.00 middernacht, en 2-4 in het dag van de weekveld - dinsdag, woensdag of donderdag.
  • Intervallen kunnen worden ingesteld in stappen groter dan één. Om bijvoorbeeld elk tweede uur aan te geven dat om middernacht begint, stelt u het interval in op 0-23 in stappen van 2, gescheiden door een schuine streep: 0-23/2
  • Een asterisk (*) geeft het volledige bereik van veldwaarden aan, van minimum tot maximum. In het dag van de maandveld betekent het sterretje bijvoorbeeld het interval 0-31, in het dag van de weekveld - 0-7
  • De dag van de week of maand kan worden aangegeven door de eerste drie letters van de (Engelse) naam

Tijd-datum voorbeelden

Enkele voorbeelden van het invullen van tijd-datumvelden:

0 1 * * * Voer de taak dagelijks uit om middernacht 13.00 uur 30 14 * * 0 Voer de taak uit op zondag om 14.30 uur 0 23-7/2.8 * * * Voer de taak elke 2 uur uit van 23.00 tot 7.00 uur en om 8.00 uur 0 12 * 1 maand Voer de taak uit om 12.00 uur op elke maandag in januari van elk jaar 0 12 2 feb * Voer de taak elk jaar uit om 12.00 uur op 2 februari

Commandoveld

Het opdrachtveld wordt door een of meer spaties gescheiden van de datum-tijdvelden en loopt door tot het einde van de regel. Commando's worden verwerkt door de /bin/sh shell.

Bijvoorbeeld, volgende invoer in het crontab-bestand zorgt ervoor dat het programma /usr/sbin/backup dagelijks om 1.00 uur middernacht wordt gestart:

0 1 * * * /usr/sbin/back-up

Voor sommige opdrachten (zoals e-mail) is apparaatinvoer vereist standaard invoer. Dit wordt aangegeven met een procentteken (%). Het eerste teken geeft het begin van de standaardinvoer aan, elk volgend teken geeft een regelwijziging aan.

Het crontab-bestand bewerken

Het crontabbestand wordt bewerkt met de opdracht crontab -e. Er zijn twee benaderingen mogelijk:

  • een nieuw bestand maken met alle vermeldingen die in het crontabbestand moeten worden opgenomen, en dit vervolgens onder deze naam naar schijf schrijven met behulp van de crontab-opdracht;
  • het bestand rechtstreeks bewerken met de opdracht crontab -e.

Schrijf vanuit bestand

Om de inhoud van een crontab-bestand vanuit een ander bestand te schrijven, moet u dat andere bestand aanmaken (in de gebruikelijke teksteditor) met alle vermeldingen waaruit het crontabbestand zou moeten bestaan. Dit kan bijvoorbeeld de volgende vermelding zijn:

0 1 * * * /usr/sbin/back-up

Het gemaakte bestand moet worden toegewezen geschikte naam, bijvoorbeeld krontaken. Na opgegeven bestand gemaakt, moet de inhoud ervan naar het crontabbestand worden geschreven met de opdracht:

~$ crontab-cronjobs

De inhoud van het cronjobs-bestand zal de inhoud van het crontab-bestand volledig vervangen gegeven gebruiker. Met deze methode kan elke gebruiker zijn crontabbestand bewerken. De superuser heeft speciale rechten om de crontab-bestanden van andere gebruikers te bewerken. Het bewerken van het bestand van iemand anders wordt aangegeven met de vlag -u. Bijvoorbeeld op commando:

~# crontab -u oleg cronjobs

het cronjobs-bestand wordt geschreven als het crontab-bestand van gebruiker oleg.

Het crontabbestand rechtstreeks bewerken

Het crontab-commando vermijdt de meerstapsbewerking van het maken apart bestand. Als u de crontab-opdracht geeft met de optie -e, kunt u het crontab-bestand rechtstreeks bewerken.

Als u de crontab-opdracht met de optie -e gebruikt, wordt het crontab-bestand standaard in de editor geladen. Editor Vi- een krachtig, zij het complex instrument, populair onder ervaren gebruikers Unix. Iemand die de voorkeur geeft aan een andere editor, b.v. Xbewerken, kan de overeenkomstige waarde instellen omgevingsvariabele EDITOR:

~$ exportEDITOR=xedit

Voer hierna de opdracht in

zorgt ervoor dat het crontab-bestand wordt geopend in de opgegeven editor.

Net als regelmatige gebruiker kan bewerken eigen bestand crontab kan de superuser de crontab-bestanden van andere gebruikers bewerken. Gebruik hiervoor het commando:

~# crontab -u gebruikersnaam -e

Het crontab-bestand bekijken

Om de inhoud van het crontabbestand te bekijken, voert u de opdracht in:

De superuser kan de crontab-bestanden van andere gebruikers bekijken:

~# crontab -u gebruikersnaam -l

Het crontab-bestand verwijderen

Om de inhoud van zijn crontabbestand te verwijderen, voert de gebruiker de opdracht in:

De superuser kan de crontab-bestanden van andere gebruikers verwijderen.