Cronjob aanmaken in DirectAdmin

Om cronjobs te openen, klik je in DirectAdmin onder ‘Advanced Features’ op ‘Cronjobs’.

Cronjobs zijn commando’s die gepland kunnen worden, zodat ze automatisch worden uitgevoerd op een door je aangegeven tijdstip. Als je bijvoorbeeld elke maandagochtend een CGI-script wilt draaien, kun je dat regelen via een cronjob. Je kunt kiezen voor minuut, uur, dag van de maand, maand en dag van de week (maandag t/m zondag, waarbij de nummers 0 of 7 de zondag aanduiden).

  • Meerdere tijdstippen duid je aan door middel van komma’s. Bijvoorbeeld: 1,2,3 duidt op de minuten 1, 2 en 3.
  • Een bepaalde tijdspanne geef je aan met een koppelteken. Bijvoorbeeld: 5-7 staat voor de minuten 5 t/m 7.
  • Tijdsintervallen geef je aan door middel van een sterretje en een voorwaartse schuine streep. Bijvoorbeeld: */2 staat voor elke 2e minuut.
  • Door gebruik te maken van combinaties kun je een zeer precies schema plannen. Bijvoorbeeld: 1,5,11-15,30-59/2 staat voor de minuten 1, 5, 11 t/m 15 en elke 2e minuut tussen 30 en 59.
  • Met een sterretje (*) kun je een waarde negeren. Als je bijvoorbeeld bij ‘Month’ een sterretje plaatst, wordt de cronjob elke maand uitgevoerd.
  • Vergeet niet om wanneer je alle gegevens heeft ingevoerd te klikken op ‘Add’ (‘Toevoegen’).

Zeer belangrijk is om bij ‘Command’ het volgende in te vullen:

/usr/local/bin/php -f /home/[gebruikersnaam]/domains/[uwdomein.nl]/public_html/cronjob.php

Vervang hierbij: [gebruikersnaam] door je DirectAdmin gebruikersnaam en [uwdomein.nl] door je domeinnaam.

Voorbeelden:

  • Minute – de waarde in minuten waarop de cronjob moet worden uitgevoerd. (* is elke minuut)
  • Hour – de waarde in uren waarop de cronjob moet worden uitgevoerd. (* is elk uur)
  • Day of Month – de dag van de maand waarop de cronjob uitgevoerd moet worden. (* is elke dag)
  • Month – de maand waarin de cronjob moet worden uitgevoerd (* is elke maand)
  • Day of Week – de dag van de week waarop de cronjob uitgevoerd moet worden (* is elke dag)

In het bovenstaande voorbeeld zorgen we ervoor dat updater.cgi elke dag om 00:00 uur wordt uitgevoerd.

In dit voorbeeld wordt de cronjob alleen op elke maandag van de 10e maand, elke minuut uitgevoerd.

Dit geeft als resultaat dat de cronjob de 1e dag van elke maand om 14:30 uur uitgevoerd wordt, ongeacht de maand of dag van de week.

 

Sinds een korte tijd maken wij gebruik van Flock.

Flock zorgt ervoor dat een cron niet dubbel komt te draaien, waardoor de server minder load krijgt en dus sneller zal zijn. Stel je heb een cron draaien en deze is dan totaal 3 minuten bezig met zijn acties, maar in de cronjob zelf staat dat deze elke minuut draait. Dan zal de cron na een bepaalde tijd, meerdere keren draaien en niet juist functioneren (zaken blijven dan op elkaar wachten).

Flock maakt een “lock” bestand aan, het lock bestaat altijd. Zodra de cron draait word het lock bestand vergrendeld op een hoger (kernel) niveau hierdoor weet hij dat de cron nog draait en zal dus niet opnieuw starten. Dat lock bestand ziet er als volgt uit (bijv.) ~/cron.lock.zdeyyiaq Deze staat in de home van je eigen gebruiker.

Mocht flock ervoor zorgen dat je cron niet  meer goed draait, dan kan je achter je cron het volgende zetten # noflock (let goed op de spatie tussen # en noflock)

  • Deel dit bericht