Naar de inhoud
Inhoud
Websites

Cronjobs Instellen en Beheren

Automatische vertaling. Het Engelse origineel is beschikbaar.

A cron job voert een opdracht uit volgens een schema, op de achtergrond, ongeacht of iemand uw site bezoekt. Deze handleiding behandelt het toevoegen van een job in KPanel, het correct opstellen van het schema en de opdracht voor dit platform, het vervangen van de onbetrouwbare ingebouwde planner van WordPress, en het vinden van de uitvoer wanneer een job niet doet wat u verwachtte.

Waar Cron Zich Bevindt in KPanel

Cron hoort bij een site, dus u bereikt het vanuit de site en niet vanuit het hoofdmenu:

  1. Meld u aan bij KPanel en klik op Websites in de linker zijbalk.
  2. Klik op de gewenste site.
  3. Open in het eigen menu van de site Instellingen en vervolgens Cron.

Het directe adres is /websites/<site-id>/cron. U ziet een tabel met bestaande jobs, of een lege weergave als de site er geen heeft.

De Cron-pagina voor een site in KPanel, met de geplande jobs op die site

Een Job Toevoegen

Klik rechtsboven op Cronjob toevoegen. Het formulier heeft drie velden.

Schema

Zes vooraf ingestelde knoppen vullen de expressie voor u in:

KnopExpressie
Elke minuut* * * * *
Elke 5 min*/5 * * * *
Elk uur0 * * * *
Dagelijks 2:00 uur0 2 * * *
Wekelijks zondag0 2 * * 0
Maandelijks 1e0 2 1 * *

Of typ uw eigen expressie in Cronexpressie. De vijf velden zijn, in volgorde: minuut, uur, dag van de maand, maand, dag van de week:

minute  hour  day-of-month  month  day-of-week
  • 0 3 * * * draait elke dag om 3:00 uur.
  • */15 * * * * draait elke vijftien minuten.
  • 0 9 * * 1 draait elke maandag om 9:00 uur.
  • 30 1 1 * * draait om 1:30 uur op de eerste van elke maand.
  • 0 */6 * * * draait elke zes uur, op het hele uur.

Label

Een naam die u later herkent, zoals WordPress cron of Nightly stock sync. Dit is wat de takenlijst u toont, maak het dus beschrijvend: job 3 helpt niemand om 2 uur 's nachts.

Opdracht

De shellopdracht die moet worden uitgevoerd. Klik op Opslaan om de job aan te maken.

Gebruik volledige paden. Cron draait met een minimale omgeving en zonder uw shellprofiel, dus een kale php of een relatief pad dat werkt wanneer u bent ingelogd via SSH, mislukt hier stilletjes. Schrijf elke keer het volledige pad uit.

De Opdracht Opstellen

Jobs draaien als de eigen systeemgebruiker van uw site, dus uw thuismap is het juiste ankerpunt en ~ wordt correct herleid. De bestanden van uw site bevinden zich op:

~/htdocs/yourdomain.co.nz

U kunt het exacte pad bevestigen op het tabblad Instellingen, vervolgens SFTP van de site, waar het wordt weergegeven onder Sitebestanden.

Typische opdrachten:

cd ~/htdocs/yourdomain.co.nz && /usr/bin/wp cron event run --due-now
cd ~/htdocs/yourdomain.co.nz && /usr/bin/php bin/send-queued-emails.php
/usr/bin/curl -fsS https://yourdomain.co.nz/api/nightly-report

Test de opdracht voordat u deze plant. Plak hem in de sectie WordPress, vervolgens Console van de site als het een wp-opdracht is, of voer hem uit via SSH. Een job die nooit zou werken, is veel makkelijker op te sporen bij de prompt dan om 3 uur 's nachts in een logbestand.

De Ingebouwde Planner van WordPress Vervangen

WordPress wordt geleverd met een eigen pseudo-planner, WP-Cron, die alleen wordt geactiveerd wanneer iemand een pagina laadt. Op een rustige site worden geplande berichten te laat gepubliceerd en stapelen e-mails zich op zonder te worden verzonden. Op een drukke site betaalt elke bezoeker de prijs van het controleren van het schema.

Een echte cron job lost beide problemen op. KPanel regelt de hele omschakeling voor u:

  1. Open de site en daarna het tabblad WordPress.
  2. Open de sectie WP-Cron.
  3. Klik op Systeem-cron inschakelen.

Dat voegt een schema toe dat WP-Cron elke vijf minuten uitvoert en stelt DISABLE_WP_CRON in, zodat paginaweergaven het niet meer activeren. Systeem-cron verwijderen op hetzelfde scherm maakt beide onderdelen ongedaan.

Als u het liever handmatig doet, zijn het twee stappen:

De door bezoekers geactiveerde versie uitschakelen. Voeg dit toe aan wp-config.php, boven de regel /* That's all, stop editing! */, met Instellingen, vervolgens Bestandenbeheerder:

define( 'DISABLE_WP_CRON', true );

De echte job toevoegen. In Instellingen, vervolgens Cron:

  • Schema: */5 * * * *
  • Label: WordPress cron
  • Opdracht: cd ~/htdocs/yourdomain.co.nz && /usr/bin/wp cron event run --due-now

Sla het onderdeel DISABLE_WP_CRON niet over. Als beide actief zijn, kan elke geplande taak twee keer worden geactiveerd: dubbele e-mails, dubbele orderverwerking, dubbele afschrijvingen bij een abonnementsplugin. Gebruik de actie met één klik in de sectie WP-Cron, dan kan dit u niet overkomen.

WooCommerce en Achtergrondwachtrijen

WooCommerce gebruikt een achtergrondwachtrij voor wijzigingen in orderstatus, verlengingen van abonnementen, e-mails en voorraadupdates. Dit is afhankelijk van WP-Cron, dus het is precies de belasting die lijdt op een rustige webshop.

Zodra het echte schema actief is, wordt de wachtrij elke vijf minuten verwerkt. Bekijk dit bij WooCommerce, vervolgens Status, vervolgens Scheduled Actions in wp-admin.

Een webshop met een hoog volume kan overstappen naar */2 * * * *. Daaronder gaan helpt zelden: u besteedt dan meer tijd aan het starten van processen dan aan het uitvoeren van werk. Zie WooCommerce Instellen.

Bestaande Jobs Beheren

De takenlijst toont Label, Schema, Opdracht, Laatste uitvoering en Status, met twee acties per rij:

  • Uitschakelen pauzeert een job zonder deze te verwijderen, en verandert in Inschakelen om hem terug te zetten. Gebruik dit wanneer u test of een job een probleem veroorzaakt.
  • Verwijderen verwijdert de job permanent. U wordt gevraagd om te bevestigen, en geplande uitvoeringen stoppen onmiddellijk.

Het verwijderen van een cron job kan niet ongedaan worden gemaakt. Het schema wordt op dat moment direct van de server verwijderd. Als u de job alleen tijdelijk wilt stoppen, gebruik dan Uitschakelen.

De Uitvoer Vinden

Van elke job die KapsuleHost aanmaakt, wordt de uitvoer voor u vastgelegd. Standaarduitvoer en fouten worden toegevoegd aan een logbestand in een map cron-logs in de thuismap van uw sitegebruiker, een bestand per job.

Dat logbestand geeft het antwoord op bijna elke vraag van het type "is mijn job uitgevoerd?", omdat het vastlegt wat de opdracht heeft weergegeven en welke fout er eventueel is opgetreden.

Om het te lezen, maakt u verbinding via SSH en kijkt u in ~/cron-logs/. SSH gebruikt sleutelauthenticatie, dus voeg eerst uw publieke sleutel toe via het tabblad Instellingen, vervolgens SSH-sleutels van de site: zie SSH-sleutels Toevoegen.

De Bestandenbeheerder en SFTP-accounts zijn beperkt tot uw sitemap, ~/htdocs/yourdomain.co.nz, en cron-logs bevindt zich één niveau daarboven. Dat is opzettelijk: het houdt een contractant met SFTP-toegang buiten alles behalve de website. Gebruik native SSH om bij de logbestanden te komen, of leid de uitvoer om naar uw sitemap zoals hieronder getoond.

Als u de uitvoer liever ergens heeft waar de Bestandenbeheerder deze kan openen, leidt u deze zelf om:

cd ~/htdocs/yourdomain.co.nz && /usr/bin/wp cron event run --due-now >> ~/htdocs/yourdomain.co.nz/wp-content/cron.log 2>&1

2>&1 stuurt fouten naar hetzelfde bestand als de normale uitvoer. Zonder dit gaan fouten nergens heen.

Alles binnen uw sitemap kan mogelijk via het web worden opgevraagd. Plaats een omgeleid logbestand onder wp-content in plaats van op de hoofdmap van de site, geef het een naam die niemand zou raden, en verwijder het zodra u klaar bent met debuggen.

Goede Praktijk

  • Spreid uw schema's. Zes jobs die allemaal zijn ingesteld op 0 2 * * * starten allemaal tegelijk. Spreid ze: 0 2, 10 2, 20 2.
  • Gebruik niet elke minuut, tenzij u dat echt nodig heeft. */5 is voor bijna alles voldoende, inclusief WordPress en WooCommerce.
  • Houd jobs kort. Een job die langer duurt dan zijn interval, zal overlappen met de volgende uitvoering.
  • Leid de uitvoer om voor alles wat veel output genereert, zodat één luidruchtige job uw schijf niet vult.
  • Bekijk de lijst af en toe. Jobs die zijn achtergebleven van een verwijderde plugin blijven doorlopen.

Probleemoplossing

De job lijkt nooit te draaien. Controleer eerst het pad. Open het logbestand. Bevestig daarna dat de status Actief is en niet Uitgeschakeld. Voer daarna dezelfde opdracht uit via SSH en kijk wat er gebeurt.

"command not found" in het logbestand. Een ontbrekend volledig pad. Gebruik /usr/bin/php, /usr/bin/wp, /usr/bin/curl in plaats van de kale naam.

Toegang geweigerd. De job draait als de systeemgebruiker van uw site. Die gebruiker moet eigenaar zijn van, of op zijn minst kunnen lezen, alles waar de opdracht mee werkt. Controleer de rechten in De Bestandenbeheerder Gebruiken.

WordPress-taken lopen nog steeds achter. Bevestig dat beide onderdelen van de omschakeling actief zijn: het schema bestaat in Instellingen, vervolgens Cron, en DISABLE_WP_CRON is ingesteld. De sectie WP-Cron op het tabblad WordPress toont de huidige status van beide.

De job draait, maar de site is traag terwijl dit gebeurt. Verplaats hem naar een rustiger uur, of splits het werk op in kleinere batches. Het resourcegebruik op siteniveau is zichtbaar onder Prestaties: zie Website-snelheid Verbeteren.

Een job stopte met werken na een plugin-update. Het pad van de opdracht is mogelijk veranderd. Controleer het logbestand en werk daarna de opdracht in de takenlijst bij door de oude job te verwijderen en een gecorrigeerde job toe te voegen.

Was dit nuttig?

Bent u een AI? Lees deze pagina als Markdown

Gerelateerde artikelen

Verbinden via SFTP: FileZilla, Cyberduck en de opdrachtregelSFTP (Secure File Transfer Protocol) geeft je directe toegang tot de bestanden van je site op de server.…SSL-certificaten en HTTPSDit artikel legt in gewone taal uit wat SSL is, hoe KapsuleHost SSL automatisch regelt voor uw websites, en wat u moet doen als er iets misgaat met uw…Websites: Waar te BeginnenHoe webhosting werkt bij KapsuleHost, wat er op elk tabblad van een site te vinden is, en welke handleiding past bij de taak die voor je ligt.…Monitoring van Site-uptimeElke site op KapsuleHost wordt elke 60 seconden automatisch gecontroleerd, en het tabblad Uptime toont je het resultaat: huidige status, uptime-percentage,…

Komt u er niet uit?

Vraag het Kora, die uw account kent, of neem contact op met ons team.

ContactContact opnemen