Debian server beheer

Crontab bewerken

Met crond kun je op vaste tijden opdrachten uit laten voeren door het systeem. Debian gebruikt zelf ook crond, bijvoorbeeld om logfiles om de zoveel tijd op te schonen. Om te zien wat er nu in je crontab staat:

crontab -l

om je eigen crontab te bewerken gebruik je

crontab -e

Cron maakt hiermee een kopie van je crontab bestand. Als je die kopie opslaat voert cron een syntaxcontrole uit en als dat goed gaat wordt je crontab teruggezet waar hij hoort: /var/spool/cron/crontabs/. Je ziet dan de mededeling:

crontab: installing new crontab

Je kunt ook de crontab van een andere gebruiker bekijken, als je tenminste ingelogd bent als root:

crontab -u janweijers -l

Om de crontab van een andere gebruiker te bewerken gebruik de je -e optie in bovenstaande opdracht in plaats van -l

Opdracht toevoegen

Een opdracht in een crontab bestaan uit vijf kolommen voor de tijd en één kolom voor de opdracht. De tijd stel je alsvolgt in:

Minuut* voor elke minuut of 0-59
Uur* voor elke uur of 0-23
Dag van de maand* voor elke dag of 1-31
Maand* voor elke maand of 1-12
Dag van de week* voor elke dag of 0 (zondag) - 6 (zaterdag)
Voorbeelden voor het uitvoeren van cronopdrachten zijn dan bijvoorbeeld:
* * * * * /etc/eenscript.shelke minuut eenscript.sh
0 9,18 * * * /etc/eenscript.shelke dag om 9:00 en 18:00 eenscript.sh
0 2 15 * * /etc/phpkanook.phpelke 15e van de maand om 2:00 phpkanook.php

Om een shell script uit te voeren moet de eerste regel van dat script zijn:

#!/bin/sh

En van een php script moet de eerste regel zijn:

#!/usr/bin/php5

Deze regels vertellen het systeem welke software (sh of php) het script uit moet voeren.

Daarnaast moet je er voor zorgen dat het script uitvoerbaar, 'executable' is:

chmod +x /etc/phpkanook.php
chmod +x /etc/eeenscript.sh

log files

Crontab maakt 'uit de doos' geen eigen logbestand. Je kunt dat instellen door eerst een logfile voor crontab aan te maken:

nano /var/log/crontab.log

je hoeft niets in het bestand te zetten, sla gewoon het lege bestand op. Bewerk vervolgens rsyslog.conf. Hier bewaart Debian alle instellingen voor loggen:

cp /etc/rsyslog.conf /etc/rsyslog.conf.backup1 nano /etc/rsyslog.conf

Vervolgens voeg de de volgende regel toe:

cron.* /var/log/crontab.log

Tenslotte moet je nog de rsyslog deamon herstarten:

/etc/init.d/rsyslog restart