crontab

Een taak plannen in Linux?

Een taak plannen in Linux?
Wanneer u een op UNIX gebaseerd besturingssysteem gebruikt, moeten bepaalde taken herhaaldelijk worden uitgevoerd. Ze elke keer handmatig uitvoeren is tijdrovend en over het algemeen inefficiënt. Om dit probleem op te lossen, wordt UNIX geleverd met ingebouwde taakplanners. Deze taakplanners werken als een slimme wekker. Wanneer het alarm afgaat, voert het besturingssysteem de vooraf gedefinieerde taak uit.

In het geval van Linux wordt het geleverd met twee eenvoudige maar krachtige tools: Cron daemon (standaard taakplanner) en at (meer geschikt voor eenmalige taakplanning).

Bekijk in deze handleiding hoe je een taak in Linux plant.

Plan taken in Linux

Cron
De cron daemon is verantwoordelijk voor het uitvoeren van veel taken op specifieke tijden. Deze taken worden over het algemeen op geplande tijden op de achtergrond uitgevoerd. Het biedt grote flexibiliteit, ongeacht de taak, ongeacht het interval (uur, week, maand, jaar of wat dan ook).

Cron houdt zijn acties bij met behulp van het crontab-bestand. Het crontab-bestand is een script dat alle benodigde informatie bevat om alle cron-taken uit te voeren.

Laten we eens kijken naar een aantal basisgebruiken van cron. In het geval van een van de volgende opdrachten, wordt het geconfigureerd voor de rootgebruiker als het wordt uitgevoerd met sudo-privilege. Voor de demonstratie heb ik hier een voorbeeld van een crontab-bestand gepakt.

Voer de volgende opdracht uit om alle geplande cron-taken voor de huidige gebruiker weer te geven:. Het zal alle inhoud van het crontab-bestand afdrukken.

$ crontab -l


Wil je de cron-takenlijst voor een andere gebruiker? Voer in plaats daarvan deze opdracht uit.

$ sudo crontab -u -l


Voer de opdracht uit om het crontab-script te bewerken. Om het crontab-bestand voor root te bewerken, voert u de volgende opdracht uit met sudo-privilege:.

$ crontab -e


Elke regel in het crontab-script definieert een taak. Hier is een snel overzicht van de crontab-items.

$

Hier is een lijst met alle mogelijke waarden voor al deze velden. Als een asterisk (*) wordt gebruikt in plaats van een numerieke waarde, wordt elke mogelijke waarde van het veld gebruikt.

  • minuut: 0 tot 59
  • uur: 0 tot 23
  • dag van de maand: 1 tot 31
  • maand: 1 tot 12
  • dag van de week: 0 (zondag) tot 6 (zaterdag)

Voor een uitgebreide handleiding over het gebruik van crontab om taken te automatiseren, bekijk hoe je cron-taken in Linux instelt. Hier is nog een snel voorbeeld van een cron-taak die elke minuut wordt uitgevoerd.

Bij
Hoewel cron de primaire manier is om taken te plannen, biedt at de mogelijkheid om een ​​opdracht/script op een bepaald tijdstip of met een vast interval uit te voeren. Houd er rekening mee dat at de doeltaak eenmaal zal uitvoeren, terwijl cron de taak met het interval opnieuw zou uitvoeren. De at-tool is minder populair in vergelijking met cron, maar is relatief gemakkelijker te gebruiken. U kunt bepaalde trefwoorden gebruiken, zoals middernacht of theetijd (4 P.M.).

Deze tool is niet vooraf geïnstalleerd in de meeste Linux-distributies. Om te installeren op, voer je de juiste opdracht uit volgens je distro.

Voor Debian/Ubuntu en derivaten.

$ Sudo apt install -y at


Voor CentOS/RHEL en derivaten.

$ yum installeren op

Voor Arch Linux en derivaten.

$ sudo Pacman -S bij

Voor Fedora en derivaten.

$ sudo dnf installeren op

Nadat de installatie is voltooid, schakelt u de at daemon.

$ sudo systemctl enable --now atd.onderhoud


De manier van werken is een beetje anders. Telkens wanneer u belt, moet u het interval definiëren voor het uitvoeren van de gewenste taak. Om bijvoorbeeld een bepaald commando na een uur uit te voeren, gebruik je het volgende commando:.

$ op nu + 1 uur


Om de gewenste taak uit te voeren op 6 P.M., zes dagen vanaf nu, voer in plaats daarvan de volgende opdracht uit:.

$ om 18u + 6 dagen


Wanneer je de opdracht uitvoert, zal je vragen om de opdracht(en) om uit te voeren. Om de at-prompt af te sluiten, drukt u op "Ctrl + d.” At zal een samenvatting geven van de geplande taken en het tijdstip waarop ze zullen worden uitgevoerd.

Dit is slechts basisgebruik. Een meer consistente manier om at te gebruiken zou het uitvoeren van een bash-script kunnen zijn met alle taken die moeten worden uitgevoerd. Geïnteresseerd om meer te leren over bash-scripting? Controleren

$ om 18.00 uur + 6 dagen -ff