Hoe werkt
CronOnce?
Wat is een crontab?
cron is een tijdgestuurde taaakplanner in Linux/Unix. Een crontab (cron table) is een configuratiebestand
dat per gebruiker bijhoudt welke commando's op welk moment moeten worden uitgevoerd.
Elke regel in een crontab bestaat uit vijf tijdvelden gevolgd door het te starten commando.
┌───────────── minuut (0–59)
│ ┌─────────── uur (0–23)
│ │ ┌───────── dag v. maand (1–31)
│ │ │ ┌─────── maand (1–12)
│ │ │ │ ┌───── dag v. week (0–7, 0 en 7 = zondag)
│ │ │ │ │
* * * * * /pad/naar/commando --argument
Speciale tekens
*— elke mogelijke waarde (wildcard),— meerdere waarden, bijv.1,15,30-— bereik, bijv.8-18(8 t/m 18)/— stapgrootte, bijv.*/5(elke 5 eenheden)L— laatste dag van de maand (niet alle cron-implementaties)W— dichtstbijzijnde werkdag (niet alle cron-implementaties)
Stap voor stap: crontab bewerken
Open de crontab-editor van de huidige gebruiker:
crontab -e
Gebruik de Builder op de hoofdpagina om je uitdrukking samen te stellen en kopieer het resultaat. Plak de regel in de editor en sla op. Wijzigingen zijn direct actief.
Bekijk de actieve crontab:
crontab -l
Verwijder alle crontab-regels van de huidige gebruiker:
crontab -r
Voor een andere gebruiker (als root):
crontab -u username -e
Systeembrede crontabs
Naast per-gebruiker crontabs bestaat het bestand /etc/crontab en de mappen
/etc/cron.d/, /etc/cron.daily/, /etc/cron.hourly/ etc.
In /etc/crontab bevat elke regel een extra veld voor de gebruiker:
# min uur dom mon dow gebruiker commando
0 2 * * * root /usr/sbin/logrotate /etc/logrotate.conf
Macros (@-notatie)
Sommige cron-implementaties ondersteunen handige macro's als alternatief voor de vijf velden:
@reboot— uitvoeren bij elke systeemstart@yearly/@annually— 1 januari 00:00@monthly— eerste van de maand 00:00@weekly— zondag 00:00@daily/@midnight— elke dag 00:00@hourly— elk uur op het hele uur
Uitvoer & logging
Standaard mailt cron de uitvoer naar de lokale gebruiker. Om uitvoer naar een bestand te schrijven:
*/5 * * * * /pad/script.sh >> /var/log/mijn-cron.log 2>&1
Of alle uitvoer onderdrukken:
*/5 * * * * /pad/script.sh > /dev/null 2>&1
Veelgemaakte fouten
- Geen absoluut pad gebruiken — cron heeft een minimale
$PATH - Procenttekens (
%) in commando's zijn newlines in crontab; escape ze als\% - Omgevingsvariabelen die in shell-sessies beschikbaar zijn, zijn dat niet in cron
- Vergeten dat het commando al als een andere gebruiker draait
Hoe werkt CronOnce technisch?
CronOnce draait als een Node.js/Express-applicatie in een Docker-container.
De frontend is volledig statisch (HTML, CSS, vanilla JS) — er is geen database nodig.
De crontab-uitdrukkingen worden in de browser berekend zonder data naar de server te sturen.
Alleen het contactformulier communiceert met de backend (/api/contact).
- Frontend: HTML5 · CSS3 · Vanilla JS
- Backend: Node.js 20 LTS + Express 4
- Container: Docker (single image, multi-stage build)
- E-mail: Nodemailer via SMTP (configureerbaar)