Crontab in Linux: VOORBEELDEN van taakplanning
โก Slimme samenvatting
Crontab in Linux plant opdrachten in om automatisch op vaste tijden, datums of intervallen te worden uitgevoerd met behulp van de cron-daemon. Hierdoor kunnen beheerders back-ups, het opschonen van logbestanden, meldingen en routinematig systeemonderhoud automatiseren zonder handmatige tussenkomst.

Crontab, een afkorting van cron-tabel, is het configuratiebestand en de opdracht die de cron-tabel aanstuurt. Linux Taakplanning. De onderstaande secties leggen het crontab-formaat uit, de commando's om taken toe te voegen, weer te geven en te verwijderen, de speciale @-tekens en kant-en-klare planningsvoorbeelden.
Wat is crontab?
Cron is vernoemd naar het Griekse woord "Chronos", wat tijd betekent. Het is een systeemproces (een daemon) dat automatisch taken uitvoert volgens een vast schema. Cron is een verzameling commando's die worden gebruikt om regelmatig geplande taken uit te voeren. Crontab staat voor "cron-tabel" en hiermee kunt u de cron-taakplanner gebruiken om die taken uit te voeren.
Crontab is ook de naam van het programma waarmee dat schema wordt bewerkt. Het wordt aangestuurd door een crontab-bestand โ een configuratiebestand dat de shell-opdrachten bevat die periodiek volgens het opgegeven schema moeten worden uitgevoerd.
Waarom cronjobs gebruiken?
Hieronder volgen de belangrijkste redenen om cronjobs in Linux te gebruiken:
- Maakt periodieke back-ups van logbestanden of databases.
- Verwijdert automatisch oude logbestanden.
- ArchiVerwijdert en verwijdert gegevens uit databasetabellen.
- Verstuurt notificatiemails, zoals nieuwsbrieven of herinneringen voor verlopen wachtwoorden.
- Voert regelmatig opschoning van gecachede gegevens uit.
- Automatiseert repetitieve Unix- en Linux-taken.
- Automatiseert routinematig systeemonderhoud.
Hoe cron gebruiken onder Linux?
Het Linux-systeempakket bevat een handige taakplanner genaamd crontab. Crontab is populair omdat een taak kan worden ingepland om als root-gebruiker te worden uitgevoerd, wat geautomatiseerde systeemwijzigingen vereenvoudigt. Je hoeft de taak slechts รฉรฉn keer te wijzigen en vervolgens te wachten tot deze volgens schema opnieuw wordt geactiveerd.
Linux Crontab-indeling
Een crontab-item in Linux heeft zes velden. De eerste vijf velden definiรซren de tijd en datum van uitvoering, en het zesde veld bevat de uit te voeren opdracht.
Crontab-syntaxis:
[Minute] [hour] [Day_of_the_Month] [Month_of_the_Year] [Day_of_the_Week] [command]
Het onderstaande diagram koppelt elk sterretje in een crontab-item aan het veld dat het beheert, van minuut tot dag van de week, gevolgd door de uit te voeren opdracht.
De vijf tijdvelden accepteren de volgende waarden: minuut (0โ59), uur (0โ23), dag van de maand (1โ31), maand (1โ12 of janโdec) en dag van de week (0โ7, waarbij 0 en 7 beide zondag betekenen). U kunt elk veld beheren met de volgende speciale tekens:
- Sterretje (*): Komt overeen met elke mogelijke waarde voor dat veld.
- Definieer een bereik: Gebruik een koppelteken om een โโbereik aan te geven, zoals 1-10, 30-40, jan-mrt of ma-wo.
- Definieer meerdere bereiken: Gebruik komma's om bereiken te combineren, zoals apr-jun,okt-dec.
Crontab toevoegen/wijzigen
Gebruikers kunnen hun eigen crontab-taken bewerken met het volgende crontab-commando. De optie -u is gericht op de crontab van een specifieke gebruiker, dus geef de gebruikersnaam op zoals in de volgende voorbeelden wordt getoond:
$ crontab -u -e
Met het bovenstaande commando opent u de persoonlijke crontab-configuratie voor uw systeem, die u kunt bewerken in uw standaard tekstverwerker.
Je hoeft cron niet opnieuw te starten; je wijzigingen worden automatisch doorgevoerd. Om je huidige taken te bekijken, gebruik je:
$ crontab -l
Om je crontab-taken te verwijderen, gebruik je de volgende opdracht:
$ crontab -r
Om een โโtaak in crontab toe te voegen of bij te werken, gebruikt u de onderstaande opdracht:
crontab -e
Om de crontab van een andere gebruiker te bewerken, moet je de naam van de gebruiker opgeven met de optie -u:
crontab -u username -e
Hoe Crontab te vermelden
Om de crontab-vermeldingen van de huidige gebruiker te bekijken:
crontab -l
Om de crontab-vermeldingen van een specifieke gebruiker te bekijken:
crontab -u username -l
Belangrijke Crontab-voorbeelden
Hieronder vindt u enkele belangrijke, direct bruikbare voorbeelden van crontab-schema's:
| Beschrijving | commando |
|---|---|
| Voert de verschillende planningstaken uit. De onderstaande opdracht wordt dagelijks om 7:00 uur en 17:00 uur uitgevoerd. |
0 7,17 * * * /scripts/script.sh
|
| Voert elke 5 minuten een cronjob uit. |
*/5* * * * * /scripts/script.sh
|
| Voert de taak elke Monday om 5 uur 's ochtends. Dit is handig voor wekelijkse taken zoals het opschonen van het systeem. |
0 5 * * mon /scripts/script.sh
|
| Voert je script elke 3 minuten uit. |
*/3 * * * * /scripts/monitor.sh
|
| Hiermee wordt een cronjob ingepland die in specifieke maanden wordt uitgevoerd โ in dit geval februari, juni en september. |
* * * feb,jun,sep * /script/script.sh
|
| Wordt uitgevoerd op geselecteerde dagen. Dit voorbeeld voert elke dag een test uit. Monday en woensdag om 5 uur. |
0 17 * * mon,wed /script/script.sh
|
| Hiermee kan cron elke eerste zaterdag van de maand worden uitgevoerd. |
0 2 * * sat [ $(date +%d) -le 06 ] && /script/script.sh |
| Voert een script uit met een interval van 6 uur, geconfigureerd zoals hieronder. |
0 */6 * * * /scripts/script.sh
|
| Plant een taak in om tweemaal te worden uitgevoerd. Monday en dinsdag. Gebruik de volgende instellingen om dit te doen. |
0 4,17 * * mon,tue /scripts/script.sh
|
| Plant een cronjob in die elke 15 seconden wordt uitgevoerd. |
* * * * * /scripts/script.sh * * * * * sleep 15; /scripts/script.sh |
| Hiermee worden taken jaarlijks ingepland. @yearly is vergelijkbaar met โ0 0 1 1 *โ. De taak wordt รฉรฉn keer per jaar uitgevoerd, om middernacht op 1 januari โ handig voor nieuwjaarswensen. |
@yearly /scripts/script.sh
|
| Voert taken maandelijks uit. @monthly is vergelijkbaar met โ0 0 1 * *โ. De taak wordt uitgevoerd om middernacht op de eerste dag van elke maand. |
@monthly /scripts/script.sh
|
| Voert meerdere taken uit met รฉรฉn enkele cron-taak. |
* * * * * /scripts/script.sh; /scripts/scrit2.sh |
| Hiermee worden taken wekelijks ingepland. @weekly is vergelijkbaar met "0 0 * * 0". Het voert wekelijkse taken uit, zoals het opschonen van het systeem elke zondag om middernacht. |
@weekly /bin/script.sh
|
| Hiermee worden taken dagelijks ingepland. @daily is vergelijkbaar met โ0 0 * * *โ. De taak wordt รฉรฉn keer per dag om middernacht uitgevoerd. |
@daily /scripts/script.sh
|
| Voert taken elk uur uit. @hourly is vergelijkbaar met โ0 * * * *โ. De taak wordt aan het begin van elk uur uitgevoerd. |
@hourly /scripts/script.sh
|
| Voert taken uit bij het opnieuw opstarten van het systeem. @reboot is handig voor taken die het systeem bij het opstarten moet uitvoeren, zodat achtergrondtaken automatisch kunnen starten. |
@reboot /scripts/script.sh
|

