Profiteer van de crontab Linux-opdracht om verschillende alledaagse en repetitieve taken te automatiseren, waardoor uw leven eenvoudiger wordt. Deze uitstekende en gebruiksvriendelijke tool, gecombineerd met wat scripting, kan niet alleen allerlei soorten taken automatiseren, maar ook helpen om eenvoudige menselijke fouten of vergeetachtigheid te voorkomen.

Hier leert u wat crontab is, hoe u geautomatiseerde taken toevoegt en enkele praktijkvoorbeelden.

Wat is Crontab?

Crontab is een daemon-proces dat op bijna alle Linux-machines op de achtergrond wordt uitgevoerd en wordt gebruikt om geautomatiseerde taken op gezette tijden te plannen en uit te voeren. Het wordt ook vaak gebruikt door softwareontwikkelaars om tijdrovende taken op de achtergrond uit te voeren.

Dit kan van alles zijn, inclusief maar niet beperkt tot het verzenden van batch-e-mails, het controleren van uw Twitter-feed, het maken van back-ups of gewoon het uitvoeren van een herinnering.

Basis Crontab-opdrachten

Elke Linux-gebruiker op de machine heeft zijn eigen crontab-bestand, dat zijn actieve crontab-taken bevat. Hier zijn enkele standaard terminalopdrachten die u zult gebruiken om het crontab-bestand te bekijken en te wijzigen:

instagram viewer

  • crontab-l Maak een lijst van alle crontab-banen.
  • crontab -e Bewerk het crontab-bestand.
  • crontab -r Verwijder alle vermeldingen uit het crontab-bestand.

De bovenstaande opdrachten zijn voor de huidige gebruikers crontab-bestand. Als u het crontab-bestand van een andere gebruiker moet wijzigen, gebruikt u gewoon de -u optie. U kunt bijvoorbeeld het jdoe crontab-bestand van de gebruiker met het commando:

Ubuntu Linux: gebruikers toevoegen aan en verwijderen uit groepen op de gemakkelijke manier

Wilt u gebruikers op Ubuntu Linux beter beheren? Het antwoord is om groepen te maken en vervolgens de Ubuntu-gebruikersfunctie toe te voegen.

sudo crontab -ujdoe -e

Formaat van Crontab-banen

Elke crontab-taak bestaat uit één regel en is als volgt opgemaakt:

MINUUT UUR DAG MAAND WEEKDAG OPDRACHT

In de onderstaande tabel worden de verschillende elementen van de crontab-taak uitgelegd:

Element Ranage Omschrijving
Minuut 0 - 59 Het moment waarop de crontab-taak moet worden uitgevoerd.
Uur 0 - 23 Het uur om de crontab-taak uit te voeren.
Dag 1 - 31 De dag van de maand waarop de crontab-taak moet worden uitgevoerd.
Maand 1 - 12 De maand waarin de crontab-taak moet worden uitgevoerd.
Weekdag 0 - 6 De dag van de week waarop de crontab-taak moet worden uitgevoerd.
Opdracht Elke Linux-opdracht die u op de terminal kunt uitvoeren.

U kunt in elk van de velden een asterisk (*) gebruiken om een ​​jokerteken aan te duiden, wat betekent dat de crontab-taak ongeacht die tijdsperiode wordt uitgevoerd. De onderstaande crontab-taak wordt bijvoorbeeld elke nacht om exact 3:20 uur uitgevoerd:

20 3 * * * /root/backup.sh

Meerdere waarden

Elke tijdsperiode kan ook meerdere elementen bevatten. U kunt de exacte waarden specificeren door ze te scheiden met een komma, en de onderstaande crontab-taak wordt elk uur om 20 en 50 minuten na het uur uitgevoerd:

20,50 * * * * /path/to/command.sh

Als u de crontab-taak echter met specifieke tussenpozen wilt uitvoeren binnen een tijdsperiode die u kunt gebruiken */PERIODE, en de onderstaande crontab-taak wordt automatisch elke drie uur om 15 minuten na het uur uitgevoerd:

15 * / 3 * * * /path/to/command.sh

Crontab Jobs stil houden

Alles afhankelijk, wilt u misschien alle uitvoer van de crontab-taken verwijderen, zodat ze niet in de e-mailmap van uw systeem terechtkomen. U kunt dit doen door toe te voegen > / dev / null 2> & 1 voor elke crontab-baan. Bijvoorbeeld:

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

Crontab-banen toevoegen

Over het algemeen is de meest gebruikte methode om crontab-taken toe te voegen of te wijzigen de crontab -e opdracht. Voer deze opdracht uit in de terminal:

crontab -e

Dit opent een teksteditor zoals nano met de inhoud van uw crontab-bestand. Elke crontab-taak bevindt zich op één regel en u kunt naar wens regels toevoegen, wijzigen en verwijderen. Als u klaar bent, slaat u het bestand op en sluit u het door op te drukken Ctrl + W, gevolgd door de Y en Enter toetsen, waarmee alle crontab-taken in het bestand onmiddellijk worden geactiveerd.

Snelkoppeling om banen toe te voegen

In plaats van het crontab-bestand handmatig te wijzigen, is er een snelle enkele opdracht die u kunt uitvoeren om een ​​taak toe te voegen. Als u bijvoorbeeld deze crontab-taak wilt toevoegen die elke zondag om 14:00 uur wordt uitgevoerd:

0 14 * * 0 /path/to/command.sh

U kunt de taak aan uw crontab-bestand toevoegen met het enkele commando:

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

De bovenstaande opdracht geeft eenvoudigweg alle taken weer die momenteel in uw crontab-bestand staan, drukt de nieuwe taak af en leidt alles naar crontab het vervangen van de inhoud.

Crontab-bestand weergeven / verwijderen

U kunt alle banen die momenteel actief zijn in uw crontab-bestand weergeven met de opdracht:

crontab -l

U kunt ook alle crontab-taken verwijderen en de inhoud van uw crontab-bestand legen met het commando:

crontab -r

Voorbeeld: speel geluiden!

Heeft u tijdens het werk elke twee uur een snelle herinnering nodig om u te laten weten dat de tijd is verstreken? Pak uw favoriete audioclip in bijna elk formaat (.wav, .mp4, alles), en of het is opgeslagen op (bijvoorbeeld) /home/myuser/myalert.wav laat het automatisch spelen met de crontab-taak:

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

Wat dacht je ervan om je een leuk uitstapje te geven van het werk van de week, terwijl je favoriete nummer elke vrijdagmiddag automatisch om 17.00 uur wordt afgespeeld? Grijp uw favoriete liedclip, en indien opgeslagen, zeg maar /home/myuser/friday_song.mp4 je zou de crontab-job toevoegen:

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

Voorbeeld: maak een back-up van bestanden met Rsync

Een van de vele uitstekende toepassingen van crontab is de mogelijkheid om automatisch een back-up van uw bestanden te maken op een externe server. Verminder hiermee aanzienlijk uw risico om ooit weer belangrijke gegevens te verliezen uitstekende rsync-tutorial.

Voorbeeld: controleer of sites online zijn

Misschien wilt u elke vijf minuten automatisch controleren of verschillende sites online zijn en per e-mail op de hoogte worden gebracht als er een storing is. Hier is een handig klein PHP-script dat precies dat zal doen.


php
// E-mailadres om te melden dat sites niet werken
$ email = '[email protected]';
// Definieer URL's om te controleren
$ urls = [< br /> ' https://apexpl.io',
'https://google.com',
'https://some-junk-site-that-will-hopefully-never-exist.com'
];
// Doorloop URL's
$ down = [];
foreach ($ urls als $ url) {
// Controleer URL
$ status = check_url ($ url);
if ($ status! = 200) {
$ down [] = $ url;
}
}
// Stuur een e-mail als we sites hebben die niet werken
if (count ($ down)> 0) {
mail ($ email, "Urgent - Sites Down!", "Uw bot heeft gedetecteerd dat de volgende sites zijn momenteel down:
". implode ("
", $ down));
}
// Exit
exit (0);
/ **
* Controleer URL < br /> * /
functie check_url (string $ url): int
{
// Verzenden 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);
// Status ophalen en verbinding verbreken
$ status = curl_getinfo ($ ch, CURLINFO_HTTP_CODE);
curl_close ($ ch);
// Return
return $ status;
}

Wijzig eenvoudig het e-mailadres en de gewenste URL's om bovenaan het bestand te controleren en sla op het ergens zoals /home/myuser/check_sites.php . Om dit script elke vijf minuten te laten draaien en u via e-mail op de hoogte te stellen van sites die niet beschikbaar zijn, voegt u de crontab-taak toe:

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

Automatiseer je leven!

Met dit artikel jij heeft hopelijk de automatiseringskracht van crontab begrepen en hoe het kan worden gebruikt om veel van de alledaagse en repetitieve taken in uw leven.

Je hebt geleerd wat crontab is, over het crontab-bestand, hoe crontab-jobs worden opgemaakt en enkele praktijkvoorbeelden van hoe het kan worden gebruikt.

DelenDelen Tweet button> E-mail
4 Linux-automatiseringsapps om uw taken en workflows te stroomlijnen

Wilt u tijd besparen en repetitieve taken vermijden? Het antwoord is automatisering! Hier zijn enkele nuttige Linux-desktopautomatiseringsapps om uit te proberen.

Gerelateerd Onderwerpen
  • Programmering
  • Linux
Over De auteur
Matt Dizak (13 artikelen Gepubliceerd)
Meer van Matt Dizak

Abonneer je op onze Nieuwsbrief

Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!

Nog een stap…!

Bevestig uw e-mailadres in het e-mail die we u zojuist hebben gestuurd.

.