Een zeer nuttig hulpprogramma in FreeBSD is cron(8). De
daemon cron
draait op de achtergrond en
controleert voortdurend /etc/crontab
. Ook
controleert cron
de map
/var/cron/tabs
, op zoek naar nieuwe
crontab
bestanden. Deze
crontab
bestanden bevatten informatie over
specifieke taken die cron
moet verrichten op
gezette tijden.
cron
gebruikt twee verschillende soorten
instellingenbestanden: de systeemcrontab en gebruikerscrontabs. Deze
formaten verschillen alleen in het zesde en verdere velden. In de
systeemcrontab zal cron
het commando draaien als de
gebruiker die in het zesde veld is opgegeven. In een gebruikerscrontab
draaien alle commando's onder de gebruiker die de crontab heeft
aangemaakt, dus is het zesde veld het laatste veld; dit is een belangrijk
beveiligingsaspect. Het laatste veld is altijd het commando dat gedraaid
wordt.
Gebruikerscrontabs geven individuele gebruikers de
mogelijkheid om bepaalde terugkerende taken automatisch te laten
uitvoeren zonder dat root
-rechten noodig
zijn. Commando's in de crontab van een gebruiker worden
uitgevoerd met de rechten van de eigenaar.
root
kan ook een gebruikerscrontab
aanleggen net als elke andere gebruiker. Dit is niet dezelfde als
/etc/crontab
, de systeemcrontab. Omdat de
systeemcrontab in de praktijk de commando's als root uitvoert, is het
doorgaans niet nodig om een gebruikerscrontab voor
root
te maken.
/etc/crontab
(de systeemcrontab) ziet er
uit als volgt:
Zoals in de meeste instellingenbestanden van FreeBSD zijn regels die
met het karakter | |
Eerst worden omgevingsvariabelen gedefiniëerd.
Hoervoor wordt het is-gelijk karakter ( | |
In deze commentaarregel staan de zeven velden van een
crontabdefinitie. Dit zijn | |
In deze regel worden aan de hierboven besproken opties
waarden toegekend. Er wordt gebruik gemaakt van
Commando's kunnen een willekeurig aantal opties of argumenten meekrijgen. Als commando's echter meerdere regels nodig hebben moeten deze regels afgebroken worden met een backslash “\” karakter, om aan te geven dat ze op de volgende regel vervolgd worden. |
Dit is de basisopzet voor elk crontab
bestand. De enige uitzondering is de aanwezigheid van veld zes,
waar de gebruikersnaam wordt aangegeven. Dit veld bestaat alleen
in de systeemversie van /etc/crontab
. Voor
crontab
-bestanden van individuele gebruikers
moet dit veld worden weggelaten.
De onderstaande procedure moet niet gebruikt worden om de
systeemcrontab /etc/crontab
te wijzigen of te
installeren. Er kan een gewone editor gebruikt worden.
cron
ziet dat het bestand veranderd is en begint
direct met het gebruiken van de nieuwe versie. Deze
FAQ vraag geeft verdere uitleg.
Om een nieuwe crontab
te installeren
moet eerst een bestand in het juiste formaat gemaakt worden en
daarna moet het geiuml;nstalleerd worden met commando
crontab
:
#
crontab crontabbestand
In dit voorbeeld is crontabbestand
de
naam van een eerder gemaakt
crontab
-bestand.
Er bestaat ook een optie om een lijst van
geïnstalleerde crontab
-bestanden op te
vragen, namelijk de optie -l
van
crontab
.
Gebruikers die hun eigen crontabbestand willen schrijven
zonder het gebruik van een sjabloon, kunnen gebruik maken van
crontab -e
. Dit opent de
EDITOR
met een leeg bestand. Als het bestand
wordt opgeslagen en de editor wordt afgesloten, wordt het
bestand automatisch als crontab
geïnstalleerd.
Een gebruikerscrontab
kan verwijderd
worden door de met crontab
de optie
-r
te gebruiken.