AllInfo

Wat is een Cron Job, en Hoe Gebruik Je Ze?

Tetiana Yurchenko/Shutterstock

De cron hulpprogramma wordt gebruikt voor het uitvoeren van scripts en commando ‘ s op regelmatige tijdstippen en op bepaalde data en tijden. Het is ingebouwd in de meeste Linux distro ‘ s, en biedt een zeer handige manier om taken te plannen op uw server.

cron is een automatiseringstool, dus alles wat die u uitvoert op een regelmatige basis kan waarschijnlijk worden overgeschakeld naar een cron job. Als je wilde maken van dagelijkse back-ups of het opnieuw opstarten van een dienst een keer per week, cron kan dat doen.

Hoe Werkt Cron Werk?

Cron jobs zijn vastgelegd in een bestand genaamd de crontab. Dit bestand is uniek voor elke gebruiker, en terwijl ze gewoonlijk onder /var/spool/cron/crontabs, ze zijn niet bedoeld om direct bewerkt worden. In plaats daarvan kunt u bewerken via het crontab commando:

crontab -e

Dit opent de gebruiker ‘ s crontab in uw standaard CLI tekst editor. Als deze heb je vast te zitten in vim, kunt u de standaard-editor door het uitvoeren van selectie-editor op sommige systemen, of door het toevoegen van export VISUAL=micro; aan uw ~/.bashrc (shell of gelijkwaardig).

Standaard is uw crontab is waarschijnlijk leeg, dus je zult moeten om banen toe te voegen handmatig. Een cron job is meestal in de opmaak:

minuut uur dag maand weekdag het commando <command uit te voeren>

De uit te voeren opdracht kan van alles zijn, zoals shell scripts

De waarden voor elke variabele tijd kan worden van wildcards, die cron zal interpreteren als altijd het geval. Bijvoorbeeld, als je wilde een taak uitvoeren vijftien minuten na elk uur, elke dag, zou je gebruik maken van:

15 * * * * opdracht

Deze zal op 15 minuten van elk uur, elke dag, elke maand, ongeacht de dag van de week.

Als je wilde een taak uitvoeren om 5:30 UUR op elke vrijdag, zou je gebruik maken van:

30 17 * * 5 opdracht

cron ondersteunt ook varieerde en stapte waarden. Waardebereiken elke waarde binnen een bepaald bereik. Als je wilde uitvoeren van een taak elk uur terwijl je aan het werk bent, zou je gebruik maken van:

0 9-17 * * 1-5 opdracht

Van 9 UUR tot 5 UUR, maandag tot en met vrijdag. Ook kunt u een zoeklijst definiëren door ze te scheiden met komma ‘ s.

Stapte waarden run op meer specifieke intervallen. U kunt taken uitvoeren om de twee uur met:

0 */2 * * * opdracht

Houd in gedachten dat de klok begint om middernacht 00:00 uur. Uw taak wordt eenmaal uitgevoerd dan, dan 2 UUR, dan om 4 UUR en zo verder.

Sommige versies van cron ondersteuning van de syntax, zoals @daags eenmaal daags, of @reboot uit te voeren op elke herstart van de computer, hoewel uw distro kan variëren.

Wilt u een eenvoudige manier om problemen te cron syntaxis, er zijn veel online editors zoals crontab.guru, die zal u tonen wat je plannen uitdrukking betekent in lekentermen, d.w.z. “Op 0 minuten langs elke 2e uur.”

Het maken van Ervoor dat Cron Werkt

Cron niet tonen u een indicatie is dat het uitvoeren van je taken. Als u wilt weten of het werkt, moet u het omleiden van de uitvoer handmatig. U kunt dit doen door de leidingen van de uitvoer naar een log bestand:

* * * * * echo ‘test’ > > logfile 2>&1

De >> operator voegt de output naar een bestand, en de 2>&1 operator zorgt ervoor dat stderr in de output. De bash-equivalent zou gewoon &>> in plaats van de > > maar dat werkt niet op elke distro, omdat cron gebruikt /bin/sh standaard.

Cron kan worden geconfigureerd voor het verzenden van e-mails met de uitvoer van taken. Eigenlijk doet dit standaard bij uw gebruikersaccount standaard e-mail adres, maar het is waarschijnlijk niet goed geconfigureerd. Om e-mail te werken, moet u een e-mail agent ingesteld en geconfigureerd op de server, die u zal toestaan om het gebruik van de e-mail opdracht voor het verzenden van e-mails. Plaats dan deze lijn boven je cron jobs in je cron job:

MAILTO=”yourname@gmail.com”

Nu, enige uitvoer van elke taak die gaat naar stdout (bijvoorbeeld, het is niet doorgesluisd ergens) zal worden verzonden via post op het adres dat u hebt opgegeven. U kunt dit testen door het toevoegen van een tijdelijke job naar de echo naar stdout elke minuut:

* * * * * echo “cron-mail aan het werk is!”

Zorg ervoor dat u die taak uit als hij aan het werk is, of het zal krijgen van vervelende zeer snel.

Cron Gebruikt /bin/sh Standaard, Geen Bash

Je kan het zijn dat u een andere shell gebruikt dan wat cron draait uw opdrachten in. Bash (/bin/bash) is een veel voorkomende shell op de meeste distro ‘ s, en is een implementatie van sh. De /bin/sh-bestand is een symlink naar een sh uitvoering, maar het is niet altijd bash. Op Debian gebaseerde systemen als Ubuntu, en op macOS, /bin/sh links naar dash standaard.

Het eindresultaat van deze verwarring is dat uw scripts niet dezelfde, en uw PAD variabele (onder andere) mogelijk niet goed geconfigureerd. U kunt dit op een aantal manieren, en uw distro ‘ s variant van cron kan verschillend werken, dus je kan hebben om te proberen een paar:

In ieder geval moet u fouten opsporen in uw cron jobs, door ze om te draaien een paar minuten voorsprong alvorens ze betrouwbaar zijn.

Het Handmatig Bijwerken Van Uw Crontab

Als u liever niet het beheer van uw crontab door crontab -e, er is een betere methode die u kunt gebruiken. Het commando crontab -l toont de inhoud van uw crontab, en u kunt deze pijp uit naar een bestand:

crontab -l > my_crontab

En dan upload dat bestand naar een ander systeem, en ‘installeren’ met:

crontab my_crontab

Deze manier, u zal niet leiden tot fouten door het bewerken van het direct, want het is nog steeds geladen via cron.

Exit mobile version