logo

‘crontab’ in Linux met voorbeelden

De crontab is een lijst met opdrachten die u volgens een regelmatig schema wilt uitvoeren, en ook de naam van de opdracht die wordt gebruikt om die lijst te beheren. Crontab staat voor cron table, omdat het de taakplanner cron gebruikt om taken uit te voeren; cron zelf is vernoemd naar chronos, het Griekse woord voor tijd. cron is het systeemproces dat automatisch taken voor u uitvoert volgens een vast schema. Het schema wordt de crontab genoemd, wat ook de naam is van het programma dat wordt gebruikt om dat schema te bewerken.

Linux Crontab-syntaxis

Het Linux Crontab-formaat wordt weergegeven door de volgende syntaxis:



MIN HOUR DOM MON DOW   CMD>

Laten we elk veld opsplitsen:

Veld

Beschrijving



Toegestane waarde

MIN (minuut)

Specificeert de minuut waarop de opdracht wordt uitgevoerd



Het varieert van 0 tot 59.

UUR

Geeft het uur van de dag aan waarop de opdracht volgens de planning moet worden uitgevoerd.

Het loopt van 0 tot 23.

DOM (Dag van de maand)

Specificeert de dag van de maand voor de taak.

Het varieert van 1 tot 31.

MA (Maand)

Geeft de maand aan waarin de opdracht wordt uitgevoerd.

Het varieert van 1 tot 12.

DOW (dag van de week)

Specificeert de dag van de week voor de taak.

Het wordt weergegeven door cijfers van 0 tot en met 6, waarbij zowel 0 als 6 overeenkomen met zondag.

CMD (opdracht)

Vertegenwoordigt de daadwerkelijke opdracht of het script dat op de geplande tijd wordt uitgevoerd.

—————–

Voorbeelden van Cron-jobs

1. Een taak plannen voor een specifieke tijd

Het basisgebruik van cron is om een ​​taak binnen een specifieke tijd uit te voeren, zoals hieronder weergegeven. Hierdoor wordt het volledige back-upshellscript (volledige back-up) uitgevoerd op 10 juni 08:30 uur. Het tijdveld gebruikt het 24-uursformaat. Dus gebruik voor 08.00 uur 8 en voor 20.00 uur 20.

30 08 10 06 * /home/maverick/full-backup>

30 – 30e minuut 08 – 08 uur 10 – 10e dag 06 – 6e maand (juni) * – Elke dag van de week

2. Om de Crontab-items te bekijken

  • Bekijk de crontab-items van de huidige ingelogde gebruiker: Om uw crontab-items te bekijken, typt u crontab -l vanuit uw Unix-account.
  • Bekijk Root Crontab-items: Log in als rootgebruiker (su – root) en voer crontab -l uit.
  • Om crontab-gegevens van andere Linux-gebruikers te bekijken: Log in op root en gebruik -u {gebruikersnaam} -l.

3. Crontab-items bewerken Bewerk de crontab-vermeldingen van de huidige ingelogde gebruiker.

Om crontab-items te bewerken, gebruikt u crontab -e. Standaard wordt hiermee de huidige ingelogde gebruikerscrontab bewerkt.

4. Om voor elke minuut een taak te plannen met behulp van Cron.

Idealiter hoeft u niet elke minuut een taak in te plannen. Maar als u dit voorbeeld begrijpt, kunt u de andere voorbeelden beter begrijpen.

* * * * * CMD>

De * betekent alle mogelijke eenheden, dat wil zeggen elke minuut van elk uur gedurende het hele jaar. Naast dat u dit * direct gebruikt, zult u het ook in de volgende gevallen zeer nuttig vinden. Wanneer u */5 in het minutenveld opgeeft, betekent dit elke 5 minuten. Wanneer u 0-10/2 opgeeft in het minutenveld, betekent dit elke 2 minuten in de eerste 10 minuten. De bovenstaande conventie kan dus voor alle andere vier velden worden gebruikt.

5. Een taak voor meer dan één keer plannen (bijvoorbeeld tweemaal per dag)

Met het volgende script wordt elke dag twee keer per dag een incrementele back-up gemaakt. In dit voorbeeld wordt het opgegeven shell-script voor incrementele back-ups (incrementele back-up) elke dag om 11:00 en 16:00 uur uitgevoerd. De door komma's gescheiden waarde in een veld geeft aan dat de opdracht binnen de genoemde tijd moet worden uitgevoerd.

00 11, 16 * * * /home/maverick/bin/incremental-backup>

00 – 0e minuut (top van het uur) 11, 16 – 11.00 uur en 16.00 uur * – Elke dag * – Elke maand * – Elke dag van de week

6. Om een ​​taak voor een bepaald tijdsbestek te plannen (bijvoorbeeld alleen op weekdagen)

Als u wilt dat een taak voor elk uur binnen een specifiek tijdsbestek wordt gepland, gebruik dan het volgende.

  • Cron Job elke dag tijdens werkuren: dit voorbeeld controleert de status van de database elke dag (inclusief weekends) tijdens werkuren van 9.00 tot 18.00 uur
00 09-18 * * * /home/maverick/bin/check-db-status>
  • 00 – 0e minuut (top van het uur) 09-18 – 9.00 uur, 10.00 uur, 11.00 uur, 12.00 uur, 13.00 uur, 14.00 uur, 15.00 uur, 16.00 uur, 17.00 uur, 18.00 uur * – Elke dag * – Elke maand * – Elke dag van de week
  • Cron Job elke weekdag tijdens werkuren: Dit voorbeeld controleert de status van de database elke weekdag (dus exclusief zaterdag en zondag) tijdens werkuren van 9.00 tot 18.00 uur.
00 09-18 * * 1-5 /home/maverick/bin/check-db-status>
  • 00 – 0e minuut (top van het uur) 09-18 – 9.00 uur, 10.00 uur, 11.00 uur, 12.00 uur, 13.00 uur, 14.00 uur, 15.00 uur, 16.00 uur, 17.00 uur, 18.00 uur * – Elke dag * – Elke maand 1-5 - ma, di, wo, do en vr (elke weekdag)

7. Om elke 10 minuten een Cron-taak op de achtergrond te plannen.

Gebruik het volgende als u elke 10 minuten de schijfruimte wilt controleren.

basisprincipes van selenium
*/10 * * * * /home/maverick/check-disk-space>

Het voert het opgegeven commando check-disk-space het hele jaar door elke 10 minuten uit. Maar het kan zijn dat u de opdracht alleen tijdens bepaalde uren wilt uitvoeren, of andersom. De bovenstaande voorbeelden laten zien hoe u deze dingen kunt doen. In plaats van waarden in de vijf velden op te geven, kunnen we deze opgeven met behulp van een enkel trefwoord, zoals hieronder vermeld. Er zijn speciale gevallen waarin u in plaats van de bovenstaande vijf velden @ kunt gebruiken, gevolgd door een trefwoord, zoals opnieuw opstarten, middernacht, jaarlijks, elk uur. Cron speciale trefwoorden en de betekenis ervan

Keyword Equivalent @yearly 0 0 1 1 * @daily 0 0 * * * @hourly 0 * * * * @reboot Run at startup.>

8. Om een ​​taak te plannen voor de eerste minuut van elk jaar met @yearly

Als u wilt dat een taak op de eerste minuut van elk jaar wordt uitgevoerd, kunt u het cron-trefwoord @yearly gebruiken, zoals hieronder weergegeven. Hierdoor wordt het jaarlijkse systeemonderhoud uitgevoerd met behulp van het shell-script voor jaarlijks onderhoud om 00:00 uur op 1 januari voor elk jaar.

@yearly /home/maverick/bin/annual-maintenance>

9. Om aan het begin van elke maand een Cron-taak te plannen met @monthly

Het is net zo vergelijkbaar als de @yearly zoals hierboven. Maar voert de opdracht één keer per maand uit met het cron-trefwoord @monthly. Hierdoor wordt de tape-backup van het shell-script uitgevoerd om 00:00 uur op de 1e van elke maand.

@monthly /home/maverick/bin/tape-backup>

10. Om elke dag een achtergrondtaak te plannen met @daily

Met behulp van het cron-trefwoord @daily wordt er dagelijks om 00:00 uur een logbestand opgeschoond met behulp van het shell-script cleanup-logs.

@daily /home/maverick/bin/cleanup-logs 'day started'>

11. Om na elke herstart een Linux-opdracht uit te voeren met @reboot

Met behulp van het cron-trefwoord @reboot wordt de opgegeven opdracht telkens één keer uitgevoerd nadat de machine is opgestart.

@reboot CMD>