Cronjob instellen met SSH
Met een Cronjob kun je een programma, script of een URL uitvoeren. Een Cronjob is niets minder dan een UNIX commando dat verteld dat een bepaald programma of script rond een bepaald tijdstip uitgevoerd moet worden. Als je hosting provider beschikt over SSH kun je met behulp van een SSH verbinding Cronjobs instellen.
Het instellen van Cronjobs kan erg handig zijn wanneer u bijvoorbeeld een PHP script automatisch wilt uit laten voeren op vaste data en tijdstippen. Zoals als eerder gezegd kun je Cronjobs instellen met behulp van een SSH verbinding. Wanneer je dit nog nooit hebt gedaan kan het erg lastig zijn en raden veel mensen je af het te gebruiken. Hier zit een kern van waarheid in maar je moet toch een keer ergens beginnen. Daarom gaan wij een eenvoudige cronjob stap voor stap uitleggen. Ook geven wij meteen enkele handige trucjes mee.
Cronjob wget
In dit voorbeeld gaan wij een Cronjob instellen dat doormiddel van wget een PHP script uitvoert elke dag om 12 uur middernacht. Voordat wij hiermee kunnen starten is het handig om software te installeren waarmee u een SSH verbinding op kunt zetten. Wijzelf gebruiken hiervoor PuTTY. PuTTY kun je HIER downloaden. Wanneer je PuTTY opstart kom je in het volgende scherm:
Bij “Host Name (or IP address)” vul je de SSH Host Name of IP in van je hosting provider. Vervolgens klik je op “Open” en het volgende scherm komt omhoog:
Vul hier je SSH gebruiksnaam in en druk op “Enter” (toetsenbord). Vervolgens wordt er gevraagd om je wachtwoord in te voeren. Vul je wachtwoord in en druk op “Enter“.
LETOP! Schrik niet wanneer er geen tekens verschijnen als je het wachtwoord intypt. Het wachtwoord wordt weldegelijk ingevuld alleen kun je dit niet zien.
Als alles goed is gegaan dan zie je het volgende scherm:
Hier kun je starten met het intypen van commando’s en dus ook het instellen van Cronjobs.
Wanneer je het volgende commando intypt crontab -l dan zie je een lijst van bestaande Crobjobs. Deze is nu waarschijnlijk leeg. Wanneer je wilt beginnen met het schrijven en of aanpassen van een Cronjob dan vul je het volgende commando in:
crontab -e
Als je weet hoe je een Cronjob schrijft kun je nu al aan de slag. Wij gaan er echter even vanuit dat je dit niet weet en gaan uitleggen hoe je een Cronjob schrijft / aanmaakt.
Dit is de Cronjob die wij nu als voorbeeld gaan maken:
0 0 * * * /usr/local/bin/wget -q -O /dev/null “http://uwwebsite.nl/cron.php “
Allereerst moet je een tijdcode instellen wanneer de Cronjob uitgevoerd dient te worden. In het begin lijkt dit lastig maar het is eigenlijk best logisch. In de onderstaande lijst staan enkele voorbeelden van veelgebruikte tijdcodes:
0 0 * * * |
elke dag om 12 uur middernacht |
0 12 * * * |
elke dag om 12 uur in de middag |
*/10 * * * * |
elke 10 minuten |
0 1 * * 1-5 |
maandag t/m vrijdag om 1 uur in de nacht |
Dit zijn slechts enkele voorbeelden maar om een goed beeld te krijgen hoe je een tijdcode opbouwt is de onderstaande structuur erg handig:
.—————- minuten (0 – 59)
| .————- uren (0 – 23)
| | .———- dag van de maand (1 – 31)
| | | .——- maand (1 – 12) OF jan,feb,mar,apr …
| | | | .—- dag van de week (0 – 6) (Sunday=0 of 7) OF sun,mon,tue,wed,thu,fri,sat
| | | | |
* * * * *
De volgende stap is uitzoeken of je hosting provider het commando “wget” wel ondersteund tevens kun je meteen het pad bepalen naar de wget. Typ het volgende commando in:
In de bovenstaande afbeelding zie je dat onze hosting provider wget ondersteund en je ziet ook meteen het pad dat je in moet stellen voor je Cronjob.
De volgende stappen zijn eigenlijk vrij eenvoudig maar de betekenis ervan is wel handig en belangrijk om te weten.
-q = vertelt wget om stil te werken (dus niet de gebruikelijke status output weer te geven)
-O /dev/null = vertelt wget om de output status in /dev/null te bewaren (een zwart gat)
De laatste stap is het invullen van het pad naar je PHP bestand. Als je alle stappen hebt gevolgd heb je nu (ongeveer) deze Cronjob:
0 0 * * * /usr/local/bin/wget -q -O /dev/null “http://uwwebsite.nl/cron.php “
Wanneer je de regel volledig in PuTTY hebt geplaatst dan druk je vervolgens op “Escape” (om uit de bewerker te gaan) en daarna typ je :wq (Write and Quit) in en druk je op “Enter“.
Je Cronjob is nu succesvol aangemaakt en nu is het wachten om te kijken of hij daadwerkelijk wordt uitgevoerd. Mocht je tegen problemen aanlopen dan kun je altijd een reactie achterlaten en wij zullen gaan kijken of wij je uit de brand kunnen helpen.
Reacties zijn gesloten