Cron-taken maken en beheren op Linux


Cron is een van de handigste tools van Linux en een favoriet bij ontwikkelaars, omdat je hiermee geautomatiseerde opdrachten kunt uitvoeren op specifieke perioden, datums en intervallen met behulp van zowel algemene als taakspecifieke scripts. Gezien die beschrijving kunt u zich voorstellen hoe systeembeheerders het gebruiken om back-uptaken, het opschonen van mappen, meldingen, enz. Te automatiseren.

Cron-jobs worden op de achtergrond uitgevoerd en controleren constant het /etc/crontab -bestand en het /etc/cron.*/ en /var/spool/cron/ mappen. De cron-bestanden mogen niet rechtstreeks worden bewerkt en elke gebruiker heeft een unieke crontab.

Hoe moet u dan cron-taken maken en bewerken? Met crontab-commando's. De crontab is de methode die u gebruikt om cron-taken te maken, bewerken, installeren, verwijderen en weer te geven.

De opdracht voor het maken en bewerken van cron-taken is hetzelfde en eenvoudig. En wat nog leuker is, is dat je cron niet opnieuw hoeft te starten nadat je nieuwe bestanden hebt gemaakt of bestaande hebt bewerkt.

$ crontab -e

Cron-syntaxis

Net zoals bij elke taal, is het werken met cron een stuk eenvoudiger als je de syntaxis begrijpt en er zijn 2 formaten die je moet kennen:

A B C D E USERNAME /path/to/command arg1 arg2
OR
A B C D E USERNAME /root/backup.sh

Uitleg van bovenstaande cron-syntaxis:

  • A: Minutes range: 0 – 59
  • B: Hours range: 0 – 23
  • C: Days range: 0 – 31
  • D: Months range: 0 – 12
  • E: Days of the week range: 0 – 7. Starting from Monday, 0 or 7 represents Sunday
  • USERNAME: replace this with your username
  • /path/to/command – The name of the script or command you want to schedule

Dat is niet alles. Cron gebruikt 3 operatorsymbolen waarmee u meerdere waarden in een veld kunt specificeren:

  1. Asterisk (*): specifies all possible values for a field
  2. The comma (,): specifies a list of values
  3. Dash (-): specifies a range of values
  4. Separator (/): specifies a step value

Nu u de syntaxis en operators van Cron kent, laten we enkele cron-voorbeelden bekijken.

Cron Job Voorbeelden

De eerste stap om cron-commando's uit te voeren, is het installeren van je crontab met het commando:

# crontab -e

Voer /root/backup.sh elke dag om 3 uur 's nachts uit:

0 3 * * * /root/backup.sh

Voer script.sh uit om 16.30 uur op de tweede van elke maand:

30 16 2 * * /path/to/script.sh

Voer /scripts/phpscript.php doordeweeks om 22.00 uur uit:

0 22 * * 1-5 /scripts/phpscript.php

Voer perlscript.pl elke dag om 23 minuten na middernacht, 2 uur 's ochtends en 4 uur' s ochtends uit:

23 0-23/2 * * * /path/to/perlscript.pl

Voer elke zondag het Linux-commando uit om 04:05 uur:

5 4 * * sun /path/to/linuxcommand

Cron-opties

Lijst met cron-taken.

# crontab -l
OR
# crontab -u username -l

Verwijder alle crontab-taken.

# crontab -r

Verwijder de Cron-taak voor een specifieke gebruiker.

# crontab -r -u username

Snaren in Crontab

Tekenreeksen behoren tot de favoriete dingen van de ontwikkelaar, omdat ze helpen tijd te besparen door repetitief schrijven te elimineren. Cron heeft specifieke strings die u kunt gebruiken om sneller opdrachten te maken:

  1. @hourly: Run once every hour i.e. “0 * * * *
  2. @midnight: Run once every day i.e. “0 0 * * *
  3. @daily: same as midnight
  4. @weekly: Run once every week, i.e. “0 0 * * 0
  5. @monthly: Run once every month i.e. “0 0 1 * *
  6. @annually: Run once every year i.e. “0 0 1 1 *
  7. @yearly: same as @annually
  8. @reboot: Run once at every startup

Dit is bijvoorbeeld hoe u elke dag een back-up van uw systeem maakt:

@daily /path/to/backup/script.sh

Op dit punt heb je alles wat je nodig hebt om systeemtaken te maken en te beheren met Cron. U kunt nu beginnen met het opzetten en onderhouden van verschillende omgevingen met behulp van geplande opdrachten.

Hoeveel van een Cron-gebruiker ben jij? En zijn er details die u aan het artikel kunt bijdragen? De discussiebox staat hieronder.

Als je genoeg begrijpt over hoe Crontab werkt, kun je deze handige Crontab-generatorhulpprogramma's gebruiken om gratis crontab-lijnen te genereren.

Je kunt hier ook het artikel van Ubuntu over het gebruik van Cron lezen. Het heeft bronnen die u misschien nuttig vindt.