crontab

Kør et Cron-job hvert minut

Kør et Cron-job hvert minut
Hvis du vil køre et program eller script i baggrunden på Linux, er cron-job meget vigtigt. Ved hjælp af cron-job kan du udføre et program eller script i baggrunden efter et givet tidsinterval.

Lad os se på nogle af de virkelige eksempler på cron-job.

Der er mange andre anvendelser af cron-job i Linux.

I denne artikel vil jeg vise dig, hvordan du kører cron-job hvert minut på Linux. Jeg bruger Debian 9 Stretch til demonstrationen. Men du kan bruge enhver moderne Linux-distribution efter eget valg. Lad os komme igang.

Grundlæggende om Crontab:

På Linux behøver du ikke være det rod for at køre cron-job. Du kan køre cron-job som enhver bruger. Hver bruger på Linux kan bruge en crontab fil for at køre deres eget sæt cron-job.

Som standard har en bruger ikke en crontab fil på Linux. Du kan oprette en crontab fil med følgende kommando:

$ crontab -e

Hvis du kører denne kommando for første gang, skal du blive bedt om at vælge en teksteditor fra listen. Jeg vælger nano, standard. Du kan vælge den, du kan lide. Når du er færdig, skal du trykke på .

Det crontab filen skal oprettes (hvis den ikke allerede er tilgængelig) og åbnes med din yndlings teksteditor.  Nu kan du tilføje dine egne cron-job i slutningen af ​​denne fil, og når du er glad, skal du bare gemme den og afslutte fra teksteditoren.

Syntaks for at køre en kommando hvert minut:

Syntaksen for crontab filen er som følger:

minut time dayOfMonth month dayOfWeek commandToRun

Her,

At køre en commandToRun kommando hvert minut, skal du skrive det i crontab fil som følger:

* * * * * commandToRun

Kører et Crob-job hvert minut:

Nu hvor vi kender teorierne, lad os tilføje et simpelt script timer.sh til crontab fil og se, hvordan du administrerer den.

I timer.sh script, jeg har kun følgende linjer med koder. Alt det gør er at oprette en ny fil / home / shovon / bin / timer.log (hvis der ikke allerede findes) og tilføjer output fra dato-kommandoen til den.

Lad os nu tilføje scriptet til vores crontab og lad det køre hvert minut med følgende linje:

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

Når du har gemt crontab fil og afslut ud af teksteditoren, den nye crontab filen skal installeres.

Efter et minut er gået, er en ny fil timer.log oprettes i det ønskede bibliotek, som du kan se i det markerede afsnit på skærmbilledet nedenfor.

Fra timer.log logfil, er det indlysende, at scriptet timer.sh kører hvert minut.

Fangstfejl fra Cron Jobs:

For at hente fejl fra et cron-job kan du sende fejlene til en fejl.log fil og normale udgange til adgang.log fil for eksempel. Selvfølgelig kan du navngive filerne hvad du vil.

For at demonstrere dette ændrede jeg mit script timer.sh en lille smule. Nu sendes fejlene til fejl.log fil i / hjem / skovl / skraldespand katalog og output sendes til adgang.log i / hjem / skovl / skraldespand vejviser.

Først / tmp / i_must_be_here filen findes ikke, så jeg får fejlen i fejl.log fil, som du kan se.

Det adgang.log filen er tom i øjeblikket.

Nu skal jeg oprette filen / tmp / i_must_be_here

Og som du kan se, er output i adgang.log fil nu.

Hvis du vil, kan du omdirigere output og fejl i samme fil som følger:

Som du kan se, sendes STDIN- og STDERR-udgange til ud.log fil.

Sørg for, at det sidste job er afsluttet, inden du kører jobbet igen:

For at dette skal fungere, kan du oprette en midlertidig fil lige efter jobbet starter og fjerne den lige før den er færdig. Derefter kan du kontrollere, om den midlertidige fil findes, før du starter jobbet. Hvis det gør det, kan du kun afslutte jobbet og kun køre jobbet, når den midlertidige fil ikke er tilgængelig.

Dette enkle script gør netop det.

Som du kan se, er timer.pid fil oprettes.

Læsning af adgang.log filen viser, at cron job ikke kører, før det forrige cron job er færdigt. Som du kan se, løb det kl. 01:32:01, og næste gang det skulle have kørt kl. 01:33:01, men det gjorde det ikke. I stedet løb den klokken 01:35:01, cirka 3 minutter senere.

Organisering af Cron-jobudgange til nem fejlretning:

Du kan formatere outputene pænt for at gøre dit cron-job lettere at debugge.

Et eksempel på, hvordan det kan gøres, findes i det følgende script.

Som du kan se, er output, fejl og succesmeddelelser pænt udskrevet i logfilen.

Du kan gøre fantastiske ting med cron-job og shell-scripts. Jeg demonstrerede nogle af ideerne her. Men himlen er din grænse. Du er velkommen til at eksperimentere med de ideer, du har. Tak, fordi du læste denne artikel.

Bedste kommandoliniespil til Linux
Kommandolinjen er ikke kun din største allierede, når du bruger Linux, den kan også være kilde til underholdning, fordi du kan bruge den til at spille...
Bedste apps til Gamepad Mapping til Linux
Hvis du kan lide at spille spil på Linux med en gamepad i stedet for et typisk tastatur- og musesystem, er der nogle nyttige apps til dig. Mange pc-sp...
Nyttige værktøjer til Linux-spillere
Hvis du kan lide at spille spil på Linux, er chancerne for, at du måske har brugt apps og hjælpeprogrammer som Wine, Lutris og OBS Studio for at forbe...