Udnyt Linux-kommandoen crontab til at automatisere forskellige verdslige og gentagne opgaver, hvilket forenkler dit liv. Dette fremragende og brugervenlige værktøj kombineret med noget scripting kan ikke kun automatisere alle slags opgaver, men hjælper også med at undgå enkle menneskelige fejl eller glemsomhed.

Her lærer du, hvad crontab er, hvordan man tilføjer automatiserede job og nogle eksempler fra den virkelige verden.

Hvad er Crontab?

Crontab er en dæmonproces, der kører i baggrunden på næsten alle Linux-maskiner og bruges til at planlægge og udføre automatiserede opgaver med bestemte tidsintervaller. Det bruges også ofte af softwareudviklere til at køre tidskrævende opgaver i baggrunden.

Dette kan være alt inklusive, men ikke begrænset til at sende batch-e-mails, kontrollere dit Twitter-feed, udføre sikkerhedskopier eller blot udføre en påmindelse.

Grundlæggende Crontab-kommandoer

Hver Linux-bruger på maskinen har sin egen crontab-fil, der indeholder deres aktive crontab-job. Her er nogle grundlæggende terminalkommandoer, du vil bruge til at se og ændre crontab-filen:

instagram viewer
  • crontab-l Liste over alle crontab-job.
  • crontab -e Rediger crontab-filen.
  • crontab -r Fjern alle poster fra crontab-filen.

Ovenstående kommandoer er til nuværende bruger crontab-fil. Hvis du har brug for at ændre en anden brugers crontab-fil, skal du blot bruge -u mulighed. For eksempel kan du redigere jdoe brugerens crontab-fil med kommandoen:

Ubuntu Linux: Tilføj og fjern brugere til grupper på den nemme måde

Ønsker du bedre at administrere brugere på Ubuntu Linux? Svaret er at oprette grupper og derefter bruge Ubuntu tilføj brugerfunktionen.

sudo crontab -ujdoe -e

Format for Crontab Jobs

Hvert crontab-job består af en linje og er formateret som nedenfor:

MINUTTIME DAG MÅNED WEEKDAG KOMMANDO

Nedenstående tabel forklarer de forskellige elementer i crontab-jobbet:

Element Ranage Beskrivelse
Minut 0 - 59 Minuttet til at udføre crontab-jobbet kl.
Time 0 - 23 Timen til at udføre crontab-jobbet kl.
Dag 1 - 31 Dagen i måneden, hvor crontab-jobet skal udføres kl.
Måned 1 - 12 Måneden til at udføre crontab-jobbet kl.
Ugedag 0 - 6 Ugedagen til at udføre crontab-jobbet kl.
Kommando Enhver Linux-kommando, som du kan udføre på terminalen.

Du kan bruge en stjerne (*) i et hvilket som helst af felterne til at betegne et jokertegn, hvilket betyder, at crontab-jobbet udføres uanset denne tidsperiode. For eksempel udføres nedenstående crontab-job hver aften nøjagtigt kl. 3:20:

20 3 * * * /root/backup.sh

Flere værdier

Hver tidsperiode kan også omfatte flere elementer. Du kan angive de nøjagtige værdier ved at adskille dem med et komma, og nedenstående crontab-job udføres hver time 20 og 50 minutter efter timen:

20,50 * * * * / sti / til / kommando.sh

Men hvis du vil udføre crontab-jobbet med bestemte intervaller inden for en tidsperiode, kan du bruge */PERIODE, og nedenstående crontab-job udføres automatisk 15 minutter over timen hver tredje time:

15 * / 3 * * * / sti / til / kommando.sh

Holder Crontab Jobs stille

Alt afhængigt vil du måske fjerne al output fra crontab-job, så de ikke ender i dit systems mail-mappe. Du kan gøre dette ved at tilføje > / dev / null 2> & 1 til ethvert crontab-job. For eksempel:

0 6 15 * * / path/to/backup.sh> / dev / null 2> & 1

Tilføjelse af Crontab-job

Generelt er den mest anvendte metode til at tilføje eller ændre crontab-job crontab -e kommando. Kør denne kommando i terminalen:

crontab -e

Dette åbner en teksteditor såsom nano med indholdet af din crontab-fil. Hvert crontab-job ligger på en linje, og du kan tilføje, ændre og fjerne linjer efter ønske. Når du er færdig, skal du gemme og lukke filen ved at trykke på Ctrl + Wefterfulgt af Y og Gå ind taster, som straks aktiverer alle crontab-job i filen.

Genvej til Tilføj job

I stedet for manuelt at ændre crontab-filen er der en hurtig enkelt kommando, du kan køre for at tilføje et job. For eksempel, hvis du vil tilføje dette crontab-job, der kører hver søndag kl. 14:00:

0 14 * * 0 / sti / til / kommando.sh

Du kan tilføje jobbet til din crontab-fil med den enkelte kommando:

(crontab-l; ekko "0 14 * * 0 /sti / til / kommando.sh";) | crontab

Ovenstående kommando viser blot alle job i øjeblikket i din crontab-fil, udskriver det nye job og rør alt i crontab udskiftning af dets indhold.

Notering / fjernelse af Crontab-fil

Du kan liste alle job, der aktuelt er aktive i din crontab-fil, med kommandoen:

crontab -l

Du kan også fjerne alle crontab-job og tømme indholdet af din crontab-fil med kommandoen:

crontab -r

Eksempel: Spil lyde!

Brug for en hurtig påmindelse hver anden time, mens du arbejder for at fortælle dig, at tiden er gået? Tag dit yndlingslydklip i næsten ethvert format (.wav, .mp4, alt), og hvis det er gemt på (for eksempel) /home/myuser/myalert.wav har det automatisk spillet med crontab job:

0 * / 2 * * * aplay /home/myuser/myalert.wav

Hvad med at give dig en god afsendelse fra ugens arbejde med din yndlingssang, der automatisk afspilles kl. 17:00 hver fredag ​​eftermiddag? Grib dit yndlingssangklip, og hvis det er gemt ved sige /home/myuser/friday_song.mp4 du tilføjer crontab job:

0 17 * * 5 aplay /home/myuser/friday_song.mp4

Eksempel: Sikkerhedskopier filer med Rsync

En af de mange fremragende anvendelser af crontab er muligheden for automatisk at sikkerhedskopiere dine filer til en ekstern server. Reducer væsentligt din risiko for nogensinde at miste vigtige data igen med dette fremragende rsync tutorial.

Eksempel: Kontroller, om websteder er online

Måske vil du automatisk kontrollere hvert femte minut, om forskellige websteder er online eller ej, og få besked via e-mail, hvis nogen er nede. Her er et smukt lille PHP-script, der gør netop det.


php
// E-mail-adresse for at give besked om websteder ned
$ email = '[email protected]';
// Definer webadresser, der skal kontrolleres
$ urls = [< br /> ' https://apexpl.io',
'https://google.com',
'https://some-junk-site-that-will-hopefully-never-exist.com'
];
// Gå gennem webadresser
$ ned = [];
foreach ($ urls som $ url) {
// Kontroller URL
$ status = check_url ($ url);
hvis ($ status! = 200) {
$ ned [] = $ url;
}
}
// Send e-mail, hvis vi har down-sites
if (count ($ down)> 0) {
mail ($ e-mail "Urgent - Sites Down!", "Din bot har registreret følgende websteder er i øjeblikket nede:
". implode ("
", $ ned));
}
// Afslut
exit (0);
/ **
* Kontroller URL < br /> * /
funktion check_url (streng $ url): int
{
// Send via cURL
$ ch = curl_init ();
curl_setopt ($ ch, CURLOPT_URL, $ url);
curl_setopt ($ ch, CURLOPT_FRESH_CONNECT, true);
curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt ($ ch, CURLOPT_FOLLOWLOCATION, sand);
$ respons = curl_exec ($ ch);
// Få status, og luk forbindelse
$ status = curl_getinfo ($ ch, CURLINFO_HTTP_CODE);
curl_close ($ ch);
// Returner
returner $ status;
}

Du skal blot ændre e-mail-adressen og de ønskede URL'er for at kontrollere øverst i filen og gemme det et sted som f.eks /home/myuser/check_sites.php . Hvis du vil have dette script kørt hvert femte minut og underrette dig via e-mail om eventuelle websteder, der er nede, skal du tilføje crontab-job:

  * / 5 * * * * / usr / bin / php /home/myuser/check_sites.php> / dev / null 2> & 1  

Automatiser dit liv!

Med denne artikel kan du vil forhåbentlig have forstået crontabs automatiseringsstyrke, og hvordan den kan bruges til at automatisere mange af de verdslige og gentagne opgaver i din liv.

Du har lært, hvad crontab er, om crontab-filen, hvordan crontab-job formateres og nogle virkelige eksempler på, hvordan det kan bruges.

4 Linux-automatiseringsapps til at strømline dine opgaver og arbejdsgange

Vil du spare tid og undgå gentagne opgaver? Svaret er automatisering! Her er nogle nyttige Linux-desktopautomationsapps, du kan prøve.

Relateret Emner
  • Programmering
  • Linux
Om Forfatteren
Matt Dizak (13 artikler Udgivet)
Mere fra Matt Dizak

Abonner på vores Nyhedsbrev

Deltag i vores nyhedsbrev for tekniske tip, anmeldelser, gratis e-bøger og eksklusive tilbud!

Endnu et trin!!!

Bekræft din e-mail-adresse i e-mail, vi lige har sendt dig.

.