Wat is crontab?
Cron is genoemd naar het Griekse woord "Chronos" dat wordt gebruikt voor tijd. Het is een systeemproces dat automatisch taken uitvoert volgens het specifieke schema. Het is een set commando's die worden gebruikt voor het uitvoeren van reguliere planningstaken. Crontab staat voor "cron table". Het maakt het mogelijk om de taakplanner te gebruiken, die bekend staat als cron om taken uit te voeren.
Crontab is ook de naam van het programma, dat wordt gebruikt om dat schema te bewerken. Het wordt aangestuurd door een crontab-bestand, een configuratiebestand dat shell-opdrachten aangeeft die periodiek moeten worden uitgevoerd voor het specifieke schema.
In deze handleiding voor het besturingssysteem leert u:
- Wat is crontab?
- Waarom CRONJOB gebruiken?
- Hoe cron te gebruiken in Linux?
- Linux Crontab-indeling
- Hoe Crontab
- Hoe Crontab
- Belangrijke Crontab-voorbeelden
Waarom Cronjobs gebruiken?
Hier zijn de redenen om Cronjobs in Linux te gebruiken:
- Helpt het besturingssysteem om een geplande back-up van logbestanden of database te maken.
- Verwijder oude logbestanden
- Archiveer en verwijder databasetabellen
- Stuur een e-mailmelding, zoals nieuwsbrieven, e-mail met het verlopen van wachtwoorden
- Regelmatige opschoning van gegevens in de cache
- Crontab is een ideale optie om Unix-taken te automatiseren.
- Het wordt gebruikt om systeemonderhoud te automatiseren
Hoe cron te gebruiken in Linux?
Het Linux-systeempakket heeft een handige taakplanner met de naam crontab. Crontab is populair omdat het kan worden gepland om een geautomatiseerd proces als root uit te voeren. Daarom maakt het hebben van een geautomatiseerd proces dat als root wordt uitgevoerd, systeemwijzigingen eenvoudiger. U hoeft alleen de taak te wijzigen en vervolgens te wachten tot de taak opnieuw wordt gestart.
Linux Crontab-indeling
Crontab van Linux heeft zes velden. De eerste vijf velden definiëren de tijd en datum van uitvoering, en het zesde veld wordt gebruikt voor het uitvoeren van opdrachten.
Crontab-syntaxis:
[Minute] [hour][Day_of_the_Month][Month_of_the_Year][Day_of_the_Week][command]
- Astrics (*): gebruik voor matching
- Bereik definiëren: Hiermee kunt u een bereik definiëren met behulp van een koppelteken, zoals 1-10 of 30-40 of jan-mar, ma-wo.
- Definieer meerdere bereiken: hiermee kunt u verschillende bereiken definiëren met gescheiden commando's zoals apr-jun, oct-dec.
Hoe Crontab
De gebruiker kan zijn crontab-taken bewerken met behulp van het volgende crontab-commando:
$ crontab -u -e
De bovenstaande opdracht opent de persoonlijke crontab-configuratie van uw computersysteem, die kan worden bewerkt met uw standaardteksteditor.
Het is niet nodig om uw crontab opnieuw te starten, aangezien het uw wijzigingen automatisch oppikt wanneer u de volgende opdracht gebruikt.
$ crontab -l
Gebruik de volgende opdracht om uw crontab-taken te verwijderen.
$ crontab -r
Gebruik de onderstaande opdracht om een taak in crontab toe te voegen of bij te werken.
crontab -e
Commando om de crontab van een andere gebruiker te bewerken
crontab -u username -e
Hoe Crontab
Commando om crontab-items van de huidige gebruiker te bekijken
crontab -l
Commando om crontab-items van een specifieke gebruiker te bekijken:
crontab -u username -l
Belangrijke Crontab-voorbeelden
Hier zijn enkele belangrijke voorbeelden van Crontab
Omschrijving | Opdracht |
Cron-opdracht om de verschillende planningstaken uit te voeren. Onderstaand commando wordt dagelijks om 7.00 uur en 17.00 uur uitgevoerd. |
0 7,17 * * * /scripts/script.sh |
Commando om na elke 5 minuten een cron uit te voeren. |
*/5* * * * * /scripts/script.sh |
Cron scheduler-opdracht helpt u om de taak elke maandag om 5 uur 's ochtends uit te voeren. Deze opdracht is handig voor het uitvoeren van wekelijkse taken zoals het opschonen van het systeem. |
0 5 * * mon /scripts/script.sh |
Voer uw script uit met een interval van 3 minuten. |
*/3 * * * * /scripts/monitor.sh |
Commando om een cron te plannen waarnaar wordt uitgevoerd voor een specifieke maand. Deze opdracht om taken uit te voeren in de maanden februari, juni en september. Soms moeten we een taak plannen om een bepaalde maandelijkse taak uit te voeren. |
* * * feb,jun,sep * /script/script.sh |
Commando om uit te voeren op geselecteerde dagen. Dit voorbeeld wordt elke maandag en woensdag om 17.00 uur uitgevoerd. |
0 17 * * mon,wed /script/script.sh |
Met deze opdracht kan cron elke eerste zaterdag van de maand worden uitgevoerd. |
0 2 * * sat [ $(date +%d) -le 06 ] && /script/script.sh |
Commando om een script uit te voeren met een interval van 6 uur, zodat het zoals hieronder kan worden geconfigureerd. |
0 */6 * * * /scripts/script.sh |
Met deze opdracht wordt een taak gepland om twee keer op maandag en dinsdag uit te voeren. Gebruik de volgende instellingen om dit te doen. |
0 4,17 * * mon,tue /scripts/script.sh |
Geef opdracht om een cron uit te voeren na elke 15 seconden. |
* * * * * /scripts/script.sh* * * * * sleep 15; /scripts/script.sh |
Commando om taken op jaarbasis te plannen. @yearly timestamp is = tot "0 0 5 1 *". Dit voert de taak uit in de vijfde minuut van elk jaar. U kunt het gebruiken om nieuwjaarswensen te verzenden. |
@yearly /scripts/script.sh |
Beveel taken uit om maandelijks uit te voeren. @maandelijkse tijdstempel is vergelijkbaar met "0 0 1 * *". Met deze opdrachtuitdrukking kan een taak in de eerste minuut van de maand worden uitgevoerd. |
@monthly /scripts/script.sh |
Commando om meerdere taken uit te voeren met een enkele cron. |
* * * * * /scripts/script.sh; /scripts/scrit2.sh |
Commando om taken in te plannen om wekelijks uit te voeren. @weekly timestamp is vergelijkbaar met "0 0 4 * sun". Dit wordt gebruikt om de wekelijkse taken uit te voeren, zoals het opschonen van het systeem, enz. |
@weekly /bin/script.sh |
De taak wordt dagelijks uitgevoerd. @daily timestamp is vergelijkbaar met "0 2 * * *". Het voert de taak uit in de tweede minuut van elke dag. |
@daily /scripts/script.sh |
Hiermee kunnen taken elk uur worden uitgevoerd. @hourly timestamp is vergelijkbaar met "0 * * * *". Deze opdracht voert een taak uit in de eerste minuut van elk uur. |
@hourly /scripts/script.sh |
Hiermee kunnen taken worden uitgevoerd bij het opnieuw opstarten van het systeem. @reboot expression is handig voor die taken die het systeem wil uitvoeren bij het opstarten van je systeem. Dit is handig om automatisch met taken op de achtergrond te beginnen. |
@reboot /scripts/script.sh |
Overzicht:
- Cron is genoemd naar het Griekse woord "Chronos" dat wordt gebruikt voor tijd.
- Cronjobs helpen het besturingssysteem om een geplande back-up van logbestanden of database te maken.
- Het Linux-systeempakket heeft een handige taakplanner met de naam crontab die kan worden gepland om een geautomatiseerd proces als root uit te voeren.
- Crontab van Linux heeft zes velden. De eerste vijf velden definiëren de tijd en datum van uitvoering, en het zesde veld wordt gebruikt voor het uitvoeren van opdrachten.