Utnyttja Linux-kommandot crontab för att automatisera olika vardagliga och repetitiva uppgifter, vilket förenklar ditt liv. Det här utmärkta och lättanvända verktyget, kombinerat med en del skript, kan inte bara automatisera alla slags uppgifter utan också hjälpa till att undvika enkla mänskliga fel eller glömska.

Här lär du dig vad crontab är, hur man lägger till automatiserade jobb och några verkliga exempel.

Vad är Crontab?

Crontab är en demonprocess som körs i bakgrunden på nästan alla Linux-maskiner, och används för att schemalägga och utföra automatiserade uppgifter vid angivna tidsintervall. Det används ofta av programutvecklare för att köra tidskrävande uppgifter i bakgrunden.

Detta kan vara allt inklusive men inte begränsat till att skicka batch-e-post, kontrollera ditt Twitter-flöde, säkerhetskopiera eller helt enkelt utföra en påminnelse.

Grundläggande Crontab-kommandon

Varje Linux-användare på maskinen har sin egen crontab-fil, som innehåller sina aktiva crontab-jobb. Här är några grundläggande terminalkommandon som du kommer att använda för att visa och ändra crontab-filen:

instagram viewer

  • crontab-l Lista alla crontab-jobb.
  • crontab -e Redigera crontab-filen.
  • crontab -r Ta bort alla poster från crontab-filen.

Ovanstående kommandon är för nuvarande användare crontab-fil. Om du behöver ändra en annan användares crontab-fil, använd bara -u alternativ. Du kan till exempel redigera jdoe användarens crontab-fil med kommandot:

Ubuntu Linux: Lägg till och ta bort användare till grupper på det enkla sättet

Vill du hantera användare bättre på Ubuntu Linux? Svaret är att skapa grupper och sedan använda användarfunktionen Ubuntu lägga till.

sudo crontab -ujdoe -e

Format för Crontab-jobb

Varje crontab-jobb består av en rad och är formaterad enligt nedan:

MINUTTIMME DAG MÅNAD VECKOKOMMANDO

Tabellen nedan förklarar de olika elementen i crontab-jobbet:

Element Ranage Beskrivning
Minut 0 - 59 Minuten att utföra crontab-jobbet på.
Timme 0 - 23 Timmen att utföra crontab-jobbet kl.
Dag 1 - 31 Dagen i månaden för att utföra crontab-jobbet kl.
Månad 1 - 12 Månaden att utföra crontab-jobbet på.
Veckodag 0 - 6 Veckodagen att utföra crontab-jobbet kl.
Kommando Alla Linux-kommandon som du kan utföra på terminalen.

Du kan använda en asterisk (*) i något av fälten för att beteckna ett jokertecken, vilket innebär att crontab-jobbet utförs oavsett vilken tidsperiod. Exempelvis utförs nedanstående crontab-jobb varje natt klockan exakt 3:20:

20 3 * * * /root/backup.sh

Flera värden

Varje tidsperiod kan också innehålla flera element. Du kan ange de exakta värdena genom att separera dem med ett kommatecken, och nedanstående crontab-jobb kommer att utföras varje timme 20 och 50 minuter efter timmen:

20,50 * * * * / väg / till / kommando.sh

Men om du vill utföra crontab-jobbet med specifika intervall inom en tidsperiod kan du använda */PERIOD, och nedanstående crontab-jobb körs automatiskt 15 minuter efter timmen var tredje timme:

15 * / 3 * * * / väg / till / kommando.sh

Håller Crontab-jobb tyst

Allt beroende, kanske du vill eliminera all produktion från crontab-jobben så att de inte hamnar i systemets e-postmapp. Du kan göra detta genom att lägga till > / dev / null 2> & 1 till alla crontab-jobb. Till exempel:

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

Lägga till Crontab-jobb

Generellt är den mest använda metoden för att lägga till eller ändra crontab-jobb crontab -e kommando. Kör det här kommandot i terminalen:

crontab -e

Detta öppnar en textredigerare Till exempel nano med innehållet i din crontab-fil. Varje crontab-jobb finns på en rad och du kan lägga till, ändra och ta bort rader efter önskemål. När du är klar sparar du och stänger filen genom att trycka på Ctrl + Wföljt av Y och Stiga på tangenter, som omedelbart aktiverar alla crontab-jobb i filen.

Genväg för att lägga till jobb

Istället för att manuellt ändra crontab-filen finns det ett snabbt enda kommando som du kan köra för att lägga till ett jobb. Om du till exempel vill lägga till det här crontab-jobbet som körs varje söndag klockan 14:00:

0 14 * * 0 / väg / till / kommando.sh

Du kan lägga till jobbet i din crontab-fil med det enda kommandot:

(crontab -l; eko "0 14 * * 0 /path/to/command.sh";) | crontab

Ovanstående kommando listar helt enkelt alla jobb som finns i din crontab-fil, skriver ut det nya jobbet och rör allt i crontab ersätta dess innehåll.

Lista / ta bort Crontab-fil

Du kan lista alla jobb som för närvarande är aktiva i din crontab-fil med kommandot:

crontab -l

Du kan också ta bort alla crontab-jobb och tömma innehållet i din crontab-fil med kommandot:

crontab -r

Exempel: Spela ljud!

Behöver du en snabb påminnelse varannan timme medan du arbetar för att meddela att tiden har gått? Ta ditt favoritljudklipp i nästan vilket format som helst (.wav, .mp4, vad som helst), och om det sparas på (till exempel) /home/myuser/myalert.wav har det automatiskt spelat med crontab-jobbet:

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

Vad sägs om att ge dig en trevlig utsändning från veckans arbete med din favoritlåt som automatiskt spelas klockan 17:00 varje fredag ​​eftermiddag? Ta tag i ditt favoritlåtsklipp, och om du har sparat det /home/myuser/friday_song.mp4 du skulle lägga till crontab-jobbet:

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

Exempel: Säkerhetskopiera filer med Rsync

En av de många utmärkta användningarna av crontab är möjligheten att automatiskt säkerhetskopiera dina filer till en fjärrserver. Minska risken avsevärt att någonsin förlora viktiga data igen med detta utmärkt rsync-handledning.

Exempel: Kontrollera om webbplatser är online

Kanske vill du automatiskt kontrollera var femte minut om olika webbplatser är online eller inte, och meddelas via e-post om någon är nere. Här är ett snyggt litet PHP-skript som gör just det.


php
// E-postadress för att meddela webbplatser nere
$ email = '[email protected]';
// Definiera webbadresser som ska kontrolleras
$ urls = [< br /> ' https://apexpl.io',
'https://google.com',
'https://some-junk-site-that-will-hopefully-never-exist.com'
];
// Gå igenom webbadresser
$ down = [];
foreach ($ urls as $ url) {
// Kontrollera URL
$ status = check_url ($ url);
if ($ status! = 200) {
$ down [] = $ url;
}
}
// Skicka e-post om vi har nere webbplatser
if (räkna ($ ned)> 0) {
e-post ($ e-post, "Urgent - Sites Down!", "Din bot har upptäckt att följande webbplatser är för närvarande nere:
". implodera ("
", $ ner));
}
// Avsluta
exit (0);
/ **
* Kontrollera URL < br /> * /
funktionskontrollur (sträng $ url): int
{
// Skicka 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, true);
$ response = curl_exec ($ ch);
// Få status och stäng anslutning
$ status = curl_getinfo ($ ch, CURLINFO_HTTP_CODE);
curl_close ($ ch);
// Returnera
returnera $ -status;
}

Ändra bara e-postadressen och önskade webbadresser för att kontrollera högst upp i filen och spara det någonstans som /home/myuser/check_sites.php . Om du vill att detta skript ska köras var femte minut och meddela dig via e-post för webbplatser som är nere, lägg till crontab-jobbet:

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

Automatisera ditt liv!

Med den här artikeln kan du kommer förhoppningsvis ha förstått Crontabs automatiseringsförmåga och hur den kan användas för att automatisera många av de vardagliga och repetitiva uppgifterna i din liv.

Du har lärt dig vad crontab är, om crontab-filen, hur crontab-jobb formateras och några verkliga exempel på hur den kan användas.

DelaDela Tweet knapp> E-post
4 Linux-automatiseringsappar för att effektivisera dina uppgifter och arbetsflöden

Vill du spara tid och undvika repetitiva uppgifter? Svaret är automatisering! Här är några användbara appar för Linux-skrivbordsautomation att prova.

Relaterat Ämnen
  • Programmering
  • Linux
Om Författaren
Matt Dizak (13 artiklar Publicerad)
Mer från Matt Dizak

Prenumerera på vår Nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e-böcker och exklusiva erbjudanden!

One More Step…!

Bekräfta din e-postadress i e-post som vi just skickat till dig.

.