del.icio.us cron

Twee entries zitten er in mijn crontab die verband houden met del.icio.us

Generally, crontab uses a daemon, crond, which runs constantly in the background and checks once a minute to see if any of the scheduled jobs need to be executed. If so, it executes them. These jobs are generally referred to as cron jobs.

Via de crontab kunnen we dus bepaalde programma’s op bepaalde tijdstippen laten uitvoeren. Om de crontab aan te spreken moet je beschikken over een shell login.

Er zijn twee del.icio.us zaken die ik op geregelde tijdstippen wil laten uitvoeren:

  1. De lijst met laatste 10 bookmarks genereren.
  2. Een backup van al mijn del.icio.us bookmarks maken.

Met de volgende frequentie:

  1. Elke twee uur (een beetje overdreven misschien)
  2. Dagelijks

De bookmarks kunnen we generen door de php file aan te spreken via de browser; als voorbeeld hadden we http://www.jouwwebsite.be/delciousrss.php genomen. (Tech: we gaan er maar eventjes van uit dat php geconfigureerd staat als Apache plugin en niet als CGI.)

Om die URL aan te spreken via de command line maken we gebruik van lynx: aan de prompt (we zijn ondertussen ingelogged) tikken we:

lynx http://www.jouwwebsite.be/delciousrss.php

en dat is eigenlijk hetzelfde als die URL in de browser ingeven. Met dat verschil dat we in lynx over een text-only interface beschikken. Om de browser te sluiten, tik je gewoon q, en dan y of de enter toets.

Je kan ook de browser gewoon een pagina laten oproepen, die pagina op het scherm tonen (dumpen), waarna de applicatie automatisch gestopt wordt. Het commando (voor dezelfde pagina) is

lynx -dump http://www.jouwwebsite.be/delciousrss.php

En dat is het commando dat we in onze cron job gaan gebruiken.

Hoe maken we nu die cron job aan? Aan de prompt (we zijn nog steeds ingelogged) tik je

crontab -l > cron.txt

Op die manier worden je eventuele bestaande cronjobs naar een bestand weggeschreven. Dat bestand gaan we editeren. Je kan dat doen, ofwel via aan de prompt, ofwel door het bestand cron.txt naar je eigen machine te FTP-en en daar met je text editor naar keuze te editeren (daarna opnieuw opladen naar de server).

In het bestand cron.txt voeg je dan de volgende lijn toen:

0 */2 * * * lynx -dump http://www.jouwwebsite.be/delciousrss.php

Dit zal ervoor zorgen dat elke 2 uur (die 0 */2) het commando, dat we zonet hebben besproken, zal worden uitgevoerd. Wil je dat liever elke drie uur, dan vervang je de 0 */2 door 0 */3, enz.

Let erop dat de laatste lijn in je cron.txt bestand een blanco lijn is. Eenmaal de cron.txt werd aangepast (en eventueel terug ge-upload), lezen we het bestand in, waardoor de crontab actief wordt. Je doet dat met het volgende commando:

crontab cron.txt

That’s it.

(Voor de dagelijkse backup ga je op een gelijkaardige manier tewerk. het commando vind je in een vorige entry, en dan editeer je de crontab op dezelfde manier. Let wel: vervang */2 door bijvoorbeeld 2, dan wordt de job elke dag om twee uur uitgevoerd.)