Beginnershandleiding voor het gebruik van Cron om taken in Linux te plannen

Cron is een krachtige planner waarmee u scripts of opdrachten kunt plannen en deze regelmatig kunt uitvoeren. Het is de hartslag die verschillende programma's en aangepaste scripts op tijd houdt. U kunt scripts plannen om in een crontab-bestand te worden uitgevoerd. Hoewel dit bestand bij de eerste bezichtiging intimiderend kan zijn, is het met een beetje oefening gemakkelijk te begrijpen.

Op sommige Linux-distributies, zoals Arch Linux, is cron niet standaard geïnstalleerd omdat het systemd als cron-alternatief gebruikt. Er zijn ook veel implementaties van Cron-implementaties, elk met zijn eigen manier om Cron-taken te bewerken/plannen. In deze tutorial zullen we ons concentreren op cronie, de standaardinstelling in de meeste Linux-distributies, zoals Ubuntu.

Beginnershandleiding voor het gebruik van Cron om taken in Linux te plannen - Linux

Bekijk inzendingen voor cr

Weergeven crontab Hiermee kunt u de geplande taken bekijken die onder uw account worden uitgevoerd.

crontab -l
Beginnershandleiding voor het gebruik van Cron om taken in Linux te plannen - Linux

U kunt de geplande taken voor het root-account ook bekijken met sudo.

sudo crontab -l

Cron-items bewerken

Als je nog nooit een cron-taak hebt ingesteld, wordt bij het bekijken van dit bestand een leeg bestand of een bestand met opmerkingen weergegeven. Om een ​​item toe te voegen, moet je het crontab-bestand openen met de optie -e.

crontab -e

Inzendingen volgen crontab Altijd dezelfde structuur, zodat u vermeldingen op elk apparaat kunt inspecteren en programmatisch kunt maken.

De basissyntaxis voor het definiëren van een crontab-item is:

m h d mon dow command

m = minuten tussen 0 en 59

h = uur tussen 0 en 23

d = dag van de maand tussen 1 en 31

Maan = een maand tussen 1 en 12

dow = Dag van de week tussen 0 en 6. Nul op zondag.

commando = opdracht om uit te voeren.

U moet bijvoorbeeld regelmatig een opdracht uitvoeren om te controleren of de mysql-server goed werkt of niet. Gebruik de volgende syntaxis om de opdracht elk uur uit te voeren:

0 * * * * mysqlcheck --all-databases --check-only-changed --silent

Dit betekent dat hij elk uur op punt zal draaien. Als je wilt dat het elke dag om 1.42 uur wordt uitgevoerd, wordt het commando:

42 1 * * * mysqlcheck --all-databases --check-only-changed --silent

Daarnaast kunnen komma's worden gebruikt voor meerdere elementen (zoals 1) en kunnen koppeltekens worden gebruikt voor bereiken. Het speciale gebruik van een asterisk in plaats van een element in de expressie geeft aan welk element moet worden uitgevoerd voor alle veldwaarden. (Er verschijnt een sterretje in het veld Uur dat elk uur van 3 - 5 moet worden uitgevoerd.) De hashtag (#) in de regel geeft een opmerking aan (wat betekent dat de coderegel niet wordt uitgevoerd).

Ten slotte geeft de schuine streep een stapwaarde aan. Zo wordt elke vijf minuten ingevoerd als */5 (vanaf het moment dat de crontab is opgeslagen en de cron-job is aangemaakt). Als u alleen "5" gebruikt, wordt de invoer pas na vijf minuten afgespeeld.

Bijvoorbeeld dit:

34 3 * * 0 mysqlcheck --all-databases --check-only-changed --silent

34: bedrijfsminuut tussen 0 en 59

3: uur, tussen 0 en 23

*: De twee middelste sterren geven elke dag (1 tot 31) en elke maand (1 tot 12) aan

0: De laatste nul verwijst naar zondag

Deze taak wordt elke maand om 3:34 uur uitgevoerd, elke week op zondag.

korte codes

Sta je toe crontab Gebruik enkele shortcodes om uw cron-items leesbaarder te maken.

@reboot - Eén keer uitvoeren, bij opstarten

@yearly Draai één keer per jaar, “0 0 1 1 *”.

@jaarlijks - zoals jaarlijks

@maandelijks – Een keer per maand uitvoeren, “0 0 1 * *”

@wekelijks Draai een keer per week, “0 0 * * 0”

@dagelijks Voer eenmaal per dag uit, "0 0 * * *"

@middernacht - dagelijks hetzelfde

@uurtje – Speel één keer per uur af, "0 * * * * *"

Bijvoorbeeld:

@hourly mysqlcheck --all-databases --check-only-changed --silent

Bewerk cron-items als een andere gebruiker

Er zijn momenten waarop u crontab-kaarten moet toevoegen. Als u bijvoorbeeld een Let is Encrypt SSL-certificaat automatisch wilt verlengen, moet u het root-vernieuwingsscript uitvoeren. Om crontab-kaarten te bewerken, voegt u eenvoudig sudo toe voor het commando:

sudo crontab -e

Op dezelfde manier kunt u een cron-taak plannen als een andere gebruiker, met behulp van de vlag -u:

sudo crontab -u username -e

Om bijvoorbeeld een cron-taak uit te voeren als gebruiker "www-data", gebruikt u de volgende opdracht:

sudo crontab -u www-data -e

Crohn's activiteitenbeoordeling

Hoewel u nu klaar bent om specifieke opdrachten of scripts uit te voeren, wilt u er misschien zeker van zijn dat ze worden uitgevoerd. De ingebouwde cron is dat zodra u de opdracht uitvoert, deze een e-mail naar de cron-eigenaar stuurt. Dit kan worden gewijzigd met de variabele "MAILTO".

Beginnershandleiding voor het gebruik van Cron om taken in Linux te plannen - Linux

toevoeging MAILTO=uwmail@uwdomein.com Alle belangrijke rapporten worden verzonden cron naar een specifieke e-mail. Deze variabele is te vinden bovenaan het crontab-bewerkingsscherm. Als het echter niet bestaat, kunt u de variabele toevoegen en het zal werken zoals verwacht.

Meerdere e-mailadressen kunnen worden gescheiden door een komma. Als u ergens anders een ander e-mailcommando nodig heeft, kunt u het MAILTO-commando direct boven het commando toevoegen. Opdrachten worden hierna verzonden mailto naar het nieuwe adres. als je weggaat MAILTO = leeg , worden meldingen naar de eigenaar van het cron-item gestuurd.

Als alternatief kunt u de omleidingsoperator (>) gebruiken om de uitvoer te verzenden wanneer u deze nodig hebt.

34 3 * * 0 mysqlcheck --all-databases --check-only-changed --silent > /dev/null

Het bovenstaande zal de uitvoer omleiden naar "/dev/null", die geen e-mail verstuurt en de uitvoer negeert.

Als je zeker wilt weten dat een taak actief is en je geen e-mail wilt sturen, kun je ook de cron-logs controleren. Op de meeste systemen zijn voor toegang tot cron-records superuser-machtigingen vereist. Het cron-log is te vinden onder “/var/log”. Het cron- of syslog-bestand geeft een logboek weer van de cron-items die zijn uitgevoerd.

sudo grep crontab syslog
Beginnershandleiding voor het gebruik van Cron om taken in Linux te plannen - Linux

Cron kan verder worden beperkt om specifiek gebruik mogelijk te maken, en standaardinstellingen kunnen worden ingesteld. Met de toevoeging van pijpen en omleidingen, kunnen cron-items worden ingesteld om allerlei dingen te doen. Uiteindelijk is cron een tool die u de mogelijkheid geeft om taken op uw gemak uit te voeren en na uw akkoord routine-onderhoud van delen van uw systeem te garanderen.

DzTech

Ik ben een staatsingenieur met uitgebreide ervaring op het gebied van programmeren, website maken, SEO en technisch schrijven. Ik ben gepassioneerd door technologie en wijd mij aan het verstrekken van kwaliteitsinformatie aan het publiek. Ik kan een waardevollere bron worden voor gebruikers die op zoek zijn naar nauwkeurige en betrouwbare informatie over productrecensies en gespecialiseerde toepassingen op verschillende gebieden. Mijn niet-aflatende toewijding aan kwaliteit en nauwkeurigheid zorgt ervoor dat de verstrekte informatie betrouwbaar en nuttig is voor het publiek. Het voortdurende streven naar kennis drijft mij om op de hoogte te blijven van de nieuwste technologische ontwikkelingen en ervoor te zorgen dat gedeelde ideeën op een duidelijke en toegankelijke manier worden overgebracht.
Ga naar de bovenste knop