5 Crontab -eksempler, der hjælper dig med at automatisere Linux -opgaver

5 Crontab -eksempler, der hjælper dig med at automatisere Linux -opgaver

Cron -programmet automatiserer udførelsen af ​​andre programmer på Linux. Cron er en dæmon, der kører kontinuerligt og starter andre programmer i henhold til en given tidsplan. Flere forskellige filer definerer denne tidsplan. De er individuelt kendt som crontabs.





Cron kan planlægge enhver Unix -kommando eller opgave. Nogle gange vil du gerne arbejde med en simpel kommando. Andre gange skal du skrive et script for at udføre den fulde opgave. Cron fungerer fint med begge metoder. Det understøtter også komplicerede planlægningsregler og fleksible måder at håndtere scriptoutput på.





Uanset om du udfører enkle brugeropgaver eller fuldstændig systemadministration, er det et must at forstå, hvordan cron fungerer ved hjælp af praktiske eksempler.





1. Oprydning /tmp ved hjælp af en system-bred Crontab

Det /tmp bibliotek er en midlertidig placering til generel brug af ethvert program eller bruger af systemet. Mange Unix -systemer sletter gamle filer i /tmp -biblioteket under opstart. Andre planlægger denne operation, ganske ofte ved hjælp af cron.

Men hvis du vil have brugerdefineret kontrol over denne proces eller ønsker at anvende den på et andet bibliotek, er det let at oprette en hurtig cron -opgave.



Her er en måde at rydde op /tmp eller en anden mappe efter eget valg:

1 3 * * * /usr/bin/find /tmp -type f -atime +10 -delete

Et minut over tre, hver dag, udfører cron denne kommando. Det bruger kommandoen find for at søge efter filer i /tmp -biblioteket. Det filtrerer alt andet end normale filer, der sidst blev ændret for mindst 10 dage siden. Det fjerner derefter alle sådanne filer, som det finder.





Du bør tilføje en kommando som denne til en global crontab som f.eks /etc/crontab eller rodens crontab ved hjælp af sudo crontab -e . Kommandoen skal køre som root, så den kan slette filer i /tmp uanset hvem der ejer dem.

Bemærk, at dette eksempel angiver den fulde sti til kommandoen find. Cron bruger en grundlæggende PATH -indstilling at søge efter eksekverbare filer, så hvis kommandoen er på et standardsted (f.eks /usr/bin ), dette er egentlig ikke nødvendigt. Du kan angive en alternativ PATH i selve crontab, hvis du foretrækker den tilgang. Men at bruge en fuld sti til kommandoer er lidt mere modstandsdygtig.





Hvis du arbejder på et projekt, der skriver logfiler eller gemmer cachelagrede data, kan denne form for tilgang være afgørende, hvis du sletter filer for at rydde diskplads. Selvom ovenstående eksempel er en hurtig og beskidt tilgang, skal du bruge en kommando som f.eks tmpwatch , hvis den er tilgængelig.

2. Databasesikkerhedskopier to gange dagligt

Lad os fra nu af fokusere på brugerspecifikke opgaver, som du kan administrere via din lokale crontab. Du kan redigere din nuværende brugers crontab ved hjælp af følgende kommando:

crontab -e

Denne crontab bør indeholde opgaver, der er specifikke for din brugerkonto. Forestil dig, at du arbejder på et projekt, der involverer at udfylde en MySQL -database. Du kan bruge mysqldump værktøj til at oprette en SQL -dump af en hel database. Ved at omdirigere dets output kan du få nemme, planlagte databasesikkerheder.

30 4 * * * /usr/local/mysql/bin/mysqldump --login-path=local --databases albums > /tmp/album-db.$(date +\%s).sql

Som standard sender cron output (inklusive fejl) via e -mail til den bruger, crontab -filen tilhører. Men du kan omdirigere output på samme måde som du ville fra en kommandolinje ved hjælp af > filnavn notation.

windows xp tema til windows 10

Bemærk, hvordan ovenstående eksempel bruger kommandosubstitution til at opbygge filnavnet baseret på det aktuelle Unix -tidsstempel. Fordi % symbolet har en særlig betydning for cron, skal kommandoen undslippe det med en forudgående omvendt skråstreg.

3. Kontrol af webstedets oppetid med et brugerdefineret script

Du har måske bemærket, at kommandoen i det sidste eksempel var ubehageligt lang. Heldigvis er der intet, der forhindrer dig i at gemme kommandoer i et script og udføre dette script via din crontab. Her er et eksempel, der kører et script hvert minut:

* * * * * /Users/bobby/bin/site-monitor.sh

Bemærk, at du i teorien kan bruge HJEM variabel eller tilde -udvidelse til en kortere kommando:

* * * * * ~/bin/site-monitor.sh

Du vælger måske at undgå at gøre det, hvis cron nogensinde stopper med at understøtte det. Der er ingen reel skade ved at bruge den fulde sti, og den er uden tvivl mere læsbar.

Selve scriptet bruger curl -programmet til at hente HTTP -statuskode for en given URL. Hvis status angiver andet end succes, skriver scriptet en besked til output.

Som tidligere nævnt sender cron dette output til os via e -mail. Det kan være nyttigt at have kommandoer i cron, der ikke producerer output ved succes.

#!/bin/bash
STATUS=`curl -s -o /dev/null -I -w '%{http_code}' http://example.com/`
if [ '$STATUS' != '200' ]
then
echo 'site appears to be down'
fi

4. Diskpladsrapporter via e -mail

Hvis du vil ændre crons standard e -mailadfærd, kan du bruge MAILTO miljøvariabel. Cron understøtter et par variabler, som du kan indstille i din crontab -fil. Cron anvender derefter disse variabler på miljøet for hver kommando, der følger.

For at angive en alternativ e -mailadresse skal du bruge følgende format:

MAILTO=user@example.com

Du skal køre dette på en maskine, der er konfigureret til at sende en ekstern e -mail, hvis det kræves. Her er et eksempel, der sender en e -mail til en anden bruger på den samme maskine. Det kører to gange om dagen, klokken 12:00 og 23:00. Det df kommandoen viser ledig diskplads, så denne crontab -post delegerer opgaven med at kontrollere, at diskplads ser OK ud:

MAILTO='sarah'
0 12,23 * * * /bin/df -h

Den resulterende e -mail vil se sådan ud:

Bemærk, at cron tilføjer sine egne tilpassede e -mailoverskrifter. Disse kan være nyttige til fejlfinding. Du kan også deaktivere crons standard e -mailadfærd ved hjælp af en tom streng:

MAILTO=''

5. Send en besked på bestemte tidspunkter

De andre eksempler bruger temmelig ligetil planlægning, men cron understøtter en kraftfuld syntaks for tidsspecifikationer. Det håndterer ikke bare nøjagtige kampe, men også:

  • Flere værdier adskilt med komma ( , )
  • Områder, der er angivet med en bindestreg ( - )
  • Trinværdier efter et skråstreg ( / )

Så hvis du f.eks. Vil sende en besked til alle loggede brugere, to gange i timen i arbejdstiden, men kun hver tredje time, er noget som følgende tilstrækkeligt:

0 15,45 9-17/3 ? * * * echo 'Enjoy your work!' | wall

Denne kommando udføres 15 og 45 minutter over timen, hver tredje time i timerne 9 til 17. Vægkommandoen sender en besked til hver logget terminalbruger.

Du kan endda opdage, at cron tilbyder mere fleksibel planlægning end din kalender -app. Nogle variationer giver dig mulighed for at angive kommandoer, der skal udføres den anden fredag ​​i en måned eller på den nærmeste hverdag til en bestemt dato.

Cron kan automatisere mange typer Linux -opgaver

Dette er et lille udvalg af den slags opgaver, cron kan hjælpe dig med at automatisere. Det kan tage noget tid at blive fortrolig med den komplekse syntaks, men cron er et kraftfuldt værktøj. Du kan bruge cron til både systemdækkende opgaver og brugerspecifikke opgaver.

Med en kompliceret syntaks til planlægning er cron kraftfuld, men du skal nok have en god reference til hånden. Crontabs tillader kommentarer, så du vil måske medtage en kommentarlinje i din for at dokumentere tidsfelterne.

Del Del Tweet E -mail Sådan bruges Crontab til at automatisere gentagne opgaver i Linux

Vil du spare tid og automatisere nøgleprocesser i Linux? Crontab er svaret.

Læs Næste
Relaterede emner
  • Linux
  • Computer automatisering
  • Opgaveautomation
  • Linux -kommandoer
Om forfatteren Bobby Jack(58 artikler udgivet)

Bobby er en teknologientusiast, der arbejdede som softwareudvikler i det meste af to årtier. Han brænder for spil, arbejder som Reviews Editor hos Switch Player Magazine og er nedsænket i alle aspekter af onlineudgivelse og webudvikling.

Windows 10 opstartsprogrammer til at deaktivere
Mere fra Bobby Jack

Abonner på vores nyhedsbrev

Tilmeld dig vores nyhedsbrev for at få tekniske tips, anmeldelser, gratis e -bøger og eksklusive tilbud!

Klik her for at abonnere