crontab

Voer elke minuut een Cron-job uit

Voer elke minuut een Cron-job uit
Als je een programma of script op de achtergrond op Linux wilt draaien, dan is cron-taak erg belangrijk. Met behulp van cron-taken kunt u na een bepaalde tijd een programma of script op de achtergrond uitvoeren.

Laten we eens kijken naar enkele van de echte voorbeelden van cron-jobs.

Er zijn veel andere toepassingen van cron-taken in Linux.

In dit artikel laat ik je zien hoe je elke minuut cron-taken op Linux uitvoert. Ik zal Debian 9 Stretch gebruiken voor de demonstratie. Maar je kunt elke moderne Linux-distributie naar keuze gebruiken. Laten we beginnen.

Basisprincipes van Crontab:

Op Linux hoeft u dat niet te zijn wortel om cron-taken uit te voeren. U kunt cron-taken uitvoeren als elke gebruiker. Elke gebruiker op Linux kan een crontab bestand om hun eigen set cron-taken uit te voeren.

Standaard heeft een gebruiker geen crontab bestand op Linux. U kunt een maken crontab bestand met het volgende commando:

$ crontab -e

Als u deze opdracht voor de eerste keer uitvoert, moet u worden gevraagd een teksteditor uit de lijst te kiezen. ik zal kiezen nano, de standaard. Je kunt degene kiezen die je leuk vindt. Als u klaar bent, drukt u op .

De crontab bestand moet worden gemaakt (indien nog niet beschikbaar) en geopend met uw favoriete teksteditor.  Nu kunt u uw eigen cron-taken aan het einde van dit bestand toevoegen en als u tevreden bent, slaat u het op en verlaat u de teksteditor.

Syntaxis van elke minuut een opdracht uitvoeren:

De syntaxis van crontab bestand is als volgt:

minuut uur dayOfMonth maand dayOfWeek opdrachtToRun

Hier,

om te rennen commandoToRun commando elke minuut, moet je het in de schrijven crontab bestand als volgt:

* * * * * commandoToRun

Elke minuut een crobjob uitvoeren:

Nu we de theorieën kennen, gaan we een eenvoudig script toevoegen tijdopnemer.sh naar de crontab bestand en kijk hoe u het beheert.

In de tijdopnemer.sh script, ik heb alleen de volgende regels codes. Het enige wat het doet is een nieuw bestand maken /home/shovon/bak/timer.log (als deze nog niet bestaat) en voegt de uitvoer van het date-commando eraan toe.

Laten we nu het script toevoegen aan onze crontab en laat het elke minuut draaien met de volgende regel:

* * * * * /home/shovon/bin/timer.sh

Zodra u de crontab bestand en verlaat de teksteditor, de nieuwe crontab bestand moet worden geïnstalleerd.

Nadat een minuut is verstreken, wordt een nieuw bestand file tijdopnemer.log wordt gemaakt in de gewenste map, zoals u kunt zien in het gemarkeerde gedeelte van de onderstaande schermafbeelding.

Van de tijdopnemer.log log-bestand, is het duidelijk dat het script tijdopnemer.sh loopt elke minuut.

Fouten opvangen van de Cron Jobs:

Om fouten van een cron-taak op te vangen, kun je de fouten naar een fout.log bestand en normale uitvoer naar toegang.log bestand bijvoorbeeld. Natuurlijk kun je de bestanden elke naam geven die je wilt.

Om dit te demonstreren, heb ik mijn script aangepast tijdopnemer.sh een klein beetje. Nu worden de fouten verzonden naar fout.log bestand in de /home/shovon/bin directory en de uitgangen worden verzonden naar toegang.log in de /home/shovon/bin map.

In eerste instantie de /tmp/i_must_be_here bestand bestaat niet, dus ik krijg de fout in de fout.log bestand zoals je kunt zien.

De toegang.log bestand is momenteel leeg.

Nu ga ik het bestand maken /tmp/i_must_be_here

En zoals je kunt zien, is de uitvoer in de toegang.log bestand nu.

Als u wilt, kunt u de uitvoer en de fouten als volgt in hetzelfde bestand omleiden:

Zoals u kunt zien, worden STDIN- en STDERR-uitgangen naar de uit.log het dossier.

Ervoor zorgen dat de laatste taak is voltooid voordat u de taak opnieuw uitvoert:

Om dit te laten werken, kunt u een tijdelijk bestand maken net nadat de taak is gestart en deze verwijderen net voordat deze is voltooid. Dan kunt u controleren of het tijdelijke bestand bestaat voordat u de taak start. Als dit het geval is, kunt u de taak verlaten en de taak alleen uitvoeren als het tijdelijke bestand niet beschikbaar is.

Dit eenvoudige script doet precies dat.

Zoals je kunt zien, is de tijdopnemer.pid bestand is aangemaakt.

Het lezen van toegang.log bestand bewijst dat de cron-taak niet wordt uitgevoerd voordat de vorige cron-taak is voltooid. Zoals je kunt zien, liep het om 01:32:01 en de volgende keer had het om 01:33:01 moeten lopen, maar dat gebeurde niet. In plaats daarvan liep het om 01:35:01, ongeveer 3 minuten later.

Cron Job-uitvoer organiseren voor eenvoudig debuggen:

U kunt de uitvoer mooi opmaken om uw cron-taak gemakkelijker te debuggen.

Een voorbeeld van hoe het kan worden gegeven in het volgende script:.

Zoals u kunt zien, worden de outputs, fouten en succesberichten netjes afgedrukt in het logbestand.

Je kunt geweldige dingen doen met cron-jobs en shellscripts. Ik heb hier enkele van de ideeën gedemonstreerd. Maar de lucht is je limiet. Voel je vrij om te experimenteren met alle ideeën die je hebt. Bedankt voor het lezen van dit artikel.

Top 5 Game Capture-kaarten
We hebben allemaal gezien en genoten van streaming gameplays op YouTube. PewDiePie, Jakesepticye en Markiplier zijn slechts enkele van de beste gamers...
Hoe een spel op Linux te ontwikkelen
Tien jaar geleden zouden niet veel Linux-gebruikers voorspellen dat hun favoriete besturingssysteem ooit een populair spelplatform voor commerciële vi...
Open source-poorten van commerciële game-engines
Gratis, open source en platformonafhankelijke game-engine-recreaties kunnen worden gebruikt om zowel oude als enkele van de vrij recente gametitels te...