Iskoristite naredbu crontab Linux za automatizaciju različitih svakodnevnih i ponavljajućih zadataka, pojednostavljujući vam život. Ovaj izvrsni i jednostavan alat za upotrebu, u kombinaciji s nekim skriptama, ne samo da može automatizirati sve vrste zadataka, već i pomoći u izbjegavanju jednostavnih ljudskih pogrešaka ili zaborava.

Ovdje ćete naučiti što je crontab, kako dodati automatizirane poslove i neke primjere iz stvarnog svijeta.

Što je Crontab?

Crontab je demonski proces koji se u pozadini izvodi na gotovo svim Linux računalima i koristi se za planiranje i izvršavanje automatiziranih zadataka u zadanim vremenskim intervalima. Također ga programeri često koriste za izvršavanje dugotrajnih zadataka u pozadini.

To može biti sve, uključujući, ali ne ograničavajući se na slanje skupnih e-poruka, provjeru vašeg Twitter feeda, izradu sigurnosnih kopija ili jednostavno izvršavanje podsjetnika.

Osnovne Crontab naredbe

Svaki Linux korisnik na računalu ima vlastitu crontab datoteku koja sadrži njihove aktivne crontab poslove. Evo nekoliko osnovnih naredbi terminala koje ćete koristiti za pregled i izmjenu datoteke crontab:

instagram viewer

  • crontab-l Navedi sve poslove crontaba.
  • crontab -e Uredite datoteku crontab.
  • crontab -r Uklonite sve unose iz datoteke crontab.

Gornje naredbe bit će za trenutnih korisnika crontab datoteku. Ako trebate izmijeniti datoteku crontab drugog korisnika, jednostavno upotrijebite -u opcija. Na primjer, možete urediti jdoe korisnikova datoteka crontab s naredbom:

Ubuntu Linux: Dodajte i uklonite korisnike u grupe na jednostavan način

Želite li bolje upravljati korisnicima na Ubuntu Linuxu? Odgovor je stvoriti grupe, a zatim upotrijebiti značajku Ubuntu dodaj korisnika.

sudo crontab -ujdoe -e

Format Crontab poslova

Svaki posao crontaba sastoji se od jednog retka i formatiran je kao u nastavku:

MINUTNI SAT DAN MJESEC ZAPOVJEDNICA U NJEDNIM DANIMA

Tablica u nastavku objašnjava različite elemente posla crontab:

Element Ranage Opis
Minuta 0 - 59 Trenutak za izvršenje posla crontab u.
Sat 0 - 23 Sat za izvršenje posla crontaba u.
Dan 1 - 31 Dan u mjesecu za izvršenje posla crontab u.
Mjesec 1 - 12 Mjesec za izvršenje posla crontab u.
Radnim danom 0 - 6 Dan u tjednu za izvršenje posla crontab u.
Naredba Bilo koja naredba Linuxa koju možete izvršiti na terminalu.

Možete koristiti zvjezdicu (*) u bilo kojem od polja da biste označili zamjenski znak, što znači da će se posao crontab izvršiti bez obzira na to vremensko razdoblje. Na primjer, donji posao crontab izvest će se svake noći točno u 3:20 ujutro:

20 3 * * * / root / sigurnosna kopija.sh

Više vrijednosti

Svako vremensko razdoblje može sadržavati i više elemenata. Možete odrediti točne vrijednosti razdvajajući ih zarezom, a donji će se zadatak crontab izvršavati svaki sat u 20 i 50 minuta iza sata:

20,50 * * * * / put / do / naredba.sh

Međutim, ako želite izvršiti posao crontab u određenim intervalima unutar vremenskog razdoblja koje možete koristiti */RAZDOBLJE, a donji će se posao crontaba automatski izvršiti u 15 minuta iza sata svaka tri sata:

15 * / 3 * * * / put / do / naredbe.sh

Održavanje tihih poslova u Crontabu

Ovisno o svemu, možda ćete htjeti eliminirati sav izlaz iz zadataka crontaba kako ne bi završili u mapi pošte vašeg sustava. To možete učiniti dodavanjem > / dev / null 2> & 1 na bilo koji posao crontaba. Na primjer:

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

Dodavanje Crontab poslova

Općenito, najčešće korištena metoda za dodavanje ili izmjenu crontab poslova je crontab -e naredba. Pokrenite ovu naredbu u terminalu:

crontab -e

Ovo će otvoriti uređivač teksta kao što su nano sa sadržajem vaše crontab datoteke. Svaki posao crontaba nalazi se u jednoj liniji, a linije možete dodavati, mijenjati i uklanjati po želji. Po završetku spremite i zatvorite datoteku pritiskom na Ctrl + W, nakon čega slijedi Y i Unesi tipke, koje će odmah aktivirati sve zadatke crontaba u datoteci.

Prečac za dodavanje poslova

Umjesto ručne izmjene datoteke crontab, postoji brza pojedinačna naredba koju možete pokrenuti za dodavanje posla. Na primjer, ako želite dodati ovaj crontab posao koji se izvodi svake nedjelje u 14:00:

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

Posao možete dodati u svoju crontab datoteku jednom naredbom:

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

Gornja naredba jednostavno navodi sve poslove koji se trenutno nalaze u vašoj crontab datoteci, ispisuje novi posao i sve stavlja u cijev krontab zamjenjujući njegov sadržaj.

Popis / uklanjanje datoteke Crontab

Pomoću naredbe možete navesti sve poslove koji su trenutno aktivni u vašoj crontab datoteci:

crontab -l

Također možete ukloniti sve zadatke crontab i isprazniti sadržaj vaše crontab datoteke naredbom:

crontab -r

Primjer: Reproduciraj zvukove!

Trebate li brzi podsjetnik svaka dva sata dok radite kako biste znali da je vrijeme prošlo? Uzmite svoj omiljeni audio isječak u gotovo bilo kojem formatu (.wav, .mp4, bilo što) i ako je spremljen na (na primjer) /home/myuser/myalert.wav neka se automatski poigra sa zadatkom crontab:

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

Što kažete na to da lijepo uputite tjedni posao sa svojom omiljenom pjesmom koja se automatski reproducira u 17:00 svakog petka popodne? Uzmite svoj omiljeni isječak pjesme i ako je recimo spremljen /home/myuser/friday_song.mp4 dodali biste posao crontab:

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

Primjer: Izrada sigurnosnih kopija datoteka s Rsyncom

Jedna od mnogih izvrsnih primjena crontaba je mogućnost automatske izrade sigurnosne kopije datoteka na udaljenom poslužitelju. Ovim znatno smanjite rizik od ponovnog gubitka važnih podataka izvrstan tutorial za rsync.

Primjer: Provjerite jesu li web lokacije mrežne

Možda želite automatski provjeravati svakih pet minuta jesu li različite web lokacije na mreži i biti obaviješteni putem e-pošte ako neke ne rade. Evo sjajne male PHP skripte koja će upravo to učiniti.


php
// Adresa e-pošte za obavještavanje o web lokacijama
$ email = '[email protected]';
// Odredite URL-ove za provjeru
$ urls = [< br /> ' https://apexpl.io',
'https://google.com',
'https://some-junk-site-that-will-hopefully-never-exist.com'
];
// Pregledajte URL-ove
$ down = [];
foreach ($ urls kao $ url) {
// Provjerite URL
$ status = check_url ($ url);
ako ($ status! = 200) {
$ dolje [] = $ url;
}
}
// Pošaljite e-mail ako imamo nedostupne web lokacije
if (count ($ down)> 0) {
mail ($ e-mail, "Hitno - web mjesta dolje!", "Vaš je bot otkrio sljedeće web lokacije trenutno ne radi:
". implode ("
", $ dolje));
}
// Izlaz
izlaz (0);
/ **
* Provjeri URL < br /> * /
funkcija check_url (niz $ url): int
{
// Pošalji putem curl-a
$ 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);
// Dohvati status i zatvori vezu
$ status = curl_getinfo ($ ch, CURLINFO_HTTP_CODE);
curl_close ($ ch);
// Vrati se
vrati $ status;
}

Jednostavno izmijenite adresu e-pošte i željene URL-ove kako biste provjerili na vrhu datoteke i spremite to negdje kao što je /home/myuser/check_sites.php . Da bi se ova skripta izvodila svakih pet minuta i putem e-pošte obavijestila o svim web lokacijama koje su propale, dodajte zadatak crontab:

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

Automatizirajte svoj život!

Ovim člankom vi nadamo se da su razumjeli moć automatizacije crontaba i kako se on može koristiti za automatizaciju mnogih svakodnevnih i ponavljajućih zadataka u vašem život.

Naučili ste što je crontab, o crontab datoteci, kako se formatiraju crontab poslovi i neki primjeri iz stvarnog svijeta kako se može koristiti.

4 Aplikacije za automatizaciju Linuxa za pojednostavljivanje vaših zadataka i tijekova rada

Želite uštedjeti vrijeme i izbjeći ponavljanje zadataka? Odgovor je automatizacija! Evo nekoliko korisnih aplikacija za automatizaciju radne površine za Linux.

Srodno Teme
  • Programiranje
  • Linux
O Autor
Matt Dizak (13 članaka Objavljeno)
Više od Matta Dizaka

Pretplatite se na naš Bilten

Pridružite se našem biltenu za tehničke savjete, preglede, besplatne e-knjige i ekskluzivne ponude!

Još jedan korak!!!

Molimo potvrdite svoju adresu e-pošte u e-mail koji smo vam upravo poslali.

.