crontab

Cron-taken instellen in Linux

Cron-taken instellen in Linux
Het automatiseren en plannen van herhaalde taken op desktops en servers verbetert de productiviteit en vermindert handmatige interventie en controle. Talloze van dergelijke tools zijn beschikbaar voor Linux en een van de meest gebruikte is "cron".

Dit artikel geeft uitleg over het plannen van taken en het uitvoeren van scripts met regelmatige tussenpozen met behulp van cron-taken.

Wat is Cron?

Cron is een taakplanningsprogramma dat als een proces op de achtergrond draait. Het kan worden gebruikt om periodiek bepaalde taken uit te voeren die zijn gepland met behulp van de vooraf gedefinieerde set regels. Cron is vooraf geïnstalleerd op de meeste Linux-distributies of is beschikbaar in de repositories om handmatig te worden geïnstalleerd.

Cron-voorinstellingen

Cron op Ubuntu wordt geleverd met een set vooraf gedefinieerde planners. U kunt ze controleren door de onderstaande opdracht uit te voeren:

$ ls /etc/cron.*

Gewoonlijk zijn deze mappen “/etc/cron.elk uur”, “/etc/cron.dagelijks”, “/etc/cron.maandelijks” en “/etc/cron.wekelijks".

Plaats gewoon uw gewenste scripts in een van deze mappen om geautomatiseerde taken elk uur, dagelijks, maandelijks of wekelijks uit te voeren.

Merk op dat cron standaard "/bin/sh" shell gebruikt. Als je "/bin/bash" als shell in cron-scripts wilt gebruiken, moet je "!# /bin/bash” hashbang bovenaan het scriptbestand of definieer shell als “SHELL=/bin/bash” variabele in de eerste regel in een gepland bash-script. Het negeren van de "SHELL"-omgevingsvariabele werkt ook voor de crontab-editor die hieronder wordt uitgelegd.

Mogelijk worden niet alle systeemomgevingsvariabelen blootgesteld aan de cron-taken. Het is dus over het algemeen een goed idee om belangrijke omgevingsvariabelen handmatig te definiëren in een script dat is gepland door cron.

Crontab

Met Crontab kunt u uw eigen geplande taken definiëren. Je kunt het gebruiken om cron-schema's te configureren die verschillen van de vier standaard cron-presets die hierboven zijn uitgelegd.

Om een ​​geplande taak in crontab in te stellen, start u eerst de crontab-editor met behulp van de onderstaande opdracht:

$ crontab -e

Nu aan het einde van het bestand kunt u een item in de volgende indeling toevoegen:

minuut uur dag maand weekdag /vol/pad/naar/script.sh

Waar:

Het onderstaande crontab-item maakt een screenshot van uw bureaublad en slaat deze eenmaal om 15:13 uur op 2 maart op in uw homedirectory plus elke dinsdag in maart om 15:13 uur.

13 15 2 3 2 scrot

Gebruik de onderstaande opdracht om alle crontab-items weer te geven:

$ crontab -l

Meer voorbeelden

Cron-taken kunnen het beste worden uitgelegd aan de hand van voorbeelden, dus hieronder zijn enkele voorbeelden die periodiek schermafbeeldingen van uw bureaublad maken en deze in de thuismap opslaan.

Naast de vijf planningsvariabelen, gebruikt cron ook een speciale reeks om taken te plannen schedule. Deze snaren zijn:

Het onderstaande crontab-item maakt één keer een screenshot bij elke herstart:

@reboot scrot

U kunt "@reboot" vervangen door andere speciale tekenreeksen die hierboven zijn genoemd.

Als u een asterisk of jokerteken gebruikt in plaats van een van de vijf variabelen, wordt de taak herhaald op alle nieuwe instanties van die variabele. Het onderstaande item maakt elke minuut een screenshot:

* * * * *  scrol

Elk uur:

0 * * * *  scrol

Elke dag om 18:00 uur:

0 18 * * * scrol

Elke maand op de 6e om 18:00 uur:

0 18 6 * * scrol

Gebruik "/" om een ​​script uit te voeren met een vast periodiek interval van 30 minuten (wordt elke 30 minuten uitgevoerd):

*/30 * * * * scrot

U kunt door komma's gescheiden variabelen gebruiken om herhaalde uitvoering van scripts met regelmatige tussenpozen te definiëren. In het onderstaande voorbeeld wordt elke 1e, 4e en 5e minuut van een nieuw uur een screenshot van uw bureaublad gemaakt.

1,4,5 * * * *  scrot

Crontab-vermeldingen verifiëren

Het definiëren van crontab-items kan lastig zijn, maar het debuggen ervan of controleren of ze werken met de juiste tijdstempels is nog lastiger. Een optie is om een ​​virtuele machine te gebruiken en tijdstempels te loggen van een script dat periodiek op een cron-taak wordt uitgevoerd door iets als de opdracht "date" op te nemen en de uitvoer om te leiden naar een tekstbestand. Een betere oplossing is echter om een ​​van de vele online cron jobs-testservices te gebruiken die beschikbaar zijn op internet. Ik raad aan om de cron-testerwebsite beschikbaar te stellen hier een poging.

Conclusie

Het uitvoeren van cron-taken is een uitstekende manier om herhaalde taken te automatiseren, vooral op servers. De tool is extreem krachtig en aanpasbaar. Het is echter belangrijk om ervoor te zorgen dat uw plannerdefinitie correct werkt, vooral als er missiekritieke taken zijn.

Hoe FPS te verhogen in Linux?
FPS staat voor Beelden per seconde. De taak van FPS is om de framesnelheid te meten bij het afspelen van video's of speluitvoeringen. In eenvoudige wo...
Top Oculus App Lab-games
Als je eigenaar bent van een Oculus-headset, moet je op de hoogte zijn van sideloading. Sideloading is het proces van het installeren van niet-winkeli...
Top 10 spellen om te spelen op Ubuntu
Het Windows-platform is een van de dominante platforms voor gaming geweest vanwege het enorme percentage games dat tegenwoordig wordt ontwikkeld om Wi...