Využite príkaz crontab Linux na automatizáciu rôznych všedných a opakujúcich sa úloh, ktoré vám zjednodušia život. Tento vynikajúci a ľahko použiteľný nástroj v kombinácii s určitým skriptovaním môže nielen automatizovať najrôznejšie úlohy, ale tiež pomôcť vyhnúť sa jednoduchým ľudským chybám alebo zábudlivosti.

Tu sa dozviete, čo je crontab, ako pridávať automatizované úlohy a niekoľko príkladov z reálneho sveta.

Čo je Crontab?

Crontab je proces démonov, ktorý beží na pozadí takmer na všetkých počítačoch so systémom Linux a používa sa na plánovanie a vykonávanie automatizovaných úloh v stanovených časových intervaloch. Vývojári softvéru ho tiež často používajú na vykonávanie časovo náročných úloh na pozadí.

Môže to byť čokoľvek, okrem iného aj odosielanie hromadných e-mailov, kontrola informačného kanála Twitter, zálohovanie alebo jednoduché pripomínanie.

Základné príkazy Crontabu

Každý užívateľ systému Linux na stroji má svoj vlastný súbor crontab, ktorý obsahuje jeho aktívne úlohy crontab. Tu je niekoľko základných príkazov terminálu, ktoré použijete na zobrazenie a úpravu súboru crontab:

instagram viewer

  • crontab-l Zoznam všetkých úloh crontab.
  • crontab -e Upravte súbor crontab.
  • crontab -r Odstráňte všetky položky zo súboru crontab.

Vyššie uvedené príkazy budú pre aktuálny používateľ súbor crontab. Ak potrebujete upraviť súbor crontab iného používateľa, jednoducho použite -u možnosť. Môžete napríklad upraviť jdoe užívateľský súbor crontab s príkazom:

Ubuntu Linux: Ľahko pridávajte a odoberajte používateľov do skupín

Chcete lepšie spravovať používateľov v systéme Ubuntu Linux? Odpoveď je vytvoriť skupiny a potom použiť funkciu pridania používateľa v systéme Ubuntu.

sudo crontab -ujdoe -e

Formát pracovných miest Crontab

Každá úloha crontabu sa skladá z jedného riadku a má nasledujúci formát:

PRÍKAZ MINUTOVEJ HODINY MESIACOVÝ TÝŽDEŇ

Nasledujúca tabuľka vysvetľuje rôzne prvky úlohy crontab:

Prvok Besnenie Popis
Minúta 0 - 59 Minúta na vykonanie úlohy crontab v.
Hodina 0 - 23 Hodina na vykonanie úlohy crontab v.
Deň 1 - 31 Deň v mesiaci na vykonanie úlohy crontab.
Mesiac 1 - 12 Mesiac na vykonanie úlohy crontab v.
Všedný deň 0 - 6 Deň v týždni na vykonanie úlohy crontab.
Velenie Akýkoľvek príkaz Linuxu, ktorý môžete vykonať na termináli.

Hviezdičku (*) môžete použiť v ktoromkoľvek z polí na označenie zástupného znaku, čo znamená, že úloha crontab sa vykoná bez ohľadu na dané časové obdobie. Napríklad úloha crontab uvedená nižšie sa bude vykonávať každú noc presne o 3:20:

20 3 * * * /root/backup.sh

Viaceré hodnoty

Každé časové obdobie môže obsahovať aj viac prvkov. Presné hodnoty môžete určiť ich oddelením čiarkou a úloha crontab uvedená nižšie sa bude vykonávať každú hodinu o 20 a 50 minútach po hodine:

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

Ak však chcete vykonať úlohu crontab v konkrétnych intervaloch v časovom období, môžete to použiť * / OBDOBIEa úloha crontab uvedená nižšie sa automaticky vykoná o 15 minút každú hodinu každé tri hodiny:

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

Zabezpečenie pokoja pracovných miest spoločnosti Crontab

Podľa všetkého možno budete chcieť vylúčiť všetok výstup z úloh crontab, aby neskončili v priečinku pošty vášho systému. Môžete to urobiť pripojením > / dev / null 2> & 1 na akúkoľvek prácu crontab. Napríklad:

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

Pridávanie úloh Crontab

Všeobecne najpoužívanejšou metódou na pridanie alebo úpravu úloh crontab je crontab -e príkaz. Spustite tento príkaz v termináli:

crontab -e

Týmto sa otvorí a textový editor ako napr nano s obsahom vášho súboru crontab. Každá úloha crontab je umiestnená na jednom riadku a riadky môžete podľa potreby pridávať, upravovať a odstraňovať. Po dokončení uložte a zatvorte súbor stlačením Ctrl + W, za ktorým nasleduje Y. a Zadajte kľúče, ktoré okamžite aktivujú všetky úlohy crontab v súbore.

Skratka na pridanie úloh

Namiesto manuálnej úpravy súboru crontab existuje jeden rýchly príkaz, pomocou ktorého môžete pridať úlohu. Napríklad, ak chcete pridať túto úlohu crontab, ktorá beží každú nedeľu o 14:00:

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

Môžete pridať úlohu do svojho súboru crontab pomocou jediného príkazu:

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

Vyššie uvedený príkaz jednoducho vypíše všetky úlohy, ktoré sa momentálne nachádzajú vo vašom súbore crontab, vytlačí novú úlohu a všetko prepíše do potrubia crontab jeho obsah.

Zoznam / odstránenie súboru Crontab

Všetky úlohy, ktoré sú momentálne aktívne vo vašom súbore crontab, môžete uviesť pomocou príkazu:

crontab -l

Môžete tiež odstrániť všetky úlohy crontab a vyprázdniť obsah súboru crontab pomocou príkazu:

crontab -r

Príklad: Hrajte zvuky!

Potrebujete rýchle pracovné pripomenutie každé dve hodiny, aby ste vedeli, že uplynul čas? Získajte svoj obľúbený zvukový klip takmer v akomkoľvek formáte (.wav, .mp4, čokoľvek) a ak je uložený v (napríklad) /home/myuser/myalert.wav nechať to automaticky hrať s úlohou crontab:

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

Čo tak dať vám pekné poslanie z týždennej práce s vašou obľúbenou skladbou, ktorá sa automaticky hrá o 17:00 každý piatok popoludní? Chyťte obľúbený klip k piesni a ak sú uložené povedzme /home/myuser/friday_song.mp4 pridali by ste úlohu crontab:

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

Príklad: Zálohovanie súborov pomocou nástroja Rsync

Jedným z mnohých vynikajúcich použití crontabu je schopnosť automaticky zálohovať vaše súbory na vzdialený server. Týmto zásadným spôsobom znížite riziko ďalšej straty dôležitých údajov vynikajúci tutoriál rsync.

Príklad: Skontrolujte, či sú stránky online

Možno by ste chceli každých päť minút automaticky skontrolovať, či sú rôzne stránky online, alebo nie, a dostávať upozornenia e-mailom, ak nejaké nefungujú. Tu je šikovný malý skript PHP, ktorý urobí práve toto.


php
// E-mailová adresa na upozornenie na výpadky stránok
$ email = '[email protected]';
// Definujte adresy URL na kontrolu
$ urls = [< br /> ' https://apexpl.io',
'https://google.com',
'https://some-junk-site-that-will-hopefully-never-exist.com'
];
// Prejdite si adresy URL
$ down = [];
foreach ($ URL ako $ URL) {
// Skontrolujte URL
$ status = check_url ($ URL);
if ($ status! = 200) {
$ dole [] = $ url;
}
}
// Pošlite e-mail, ak máme dole stránky
if (počet ($ dole)> 0) {
mail ($ email, "Urgent - Sites Down!", "Váš robot zistil, že sú nasledujúce stránky momentálne nefunkčné:
". implode ("
", $ down));
}
// Ukončiť
ukončiť (0);
/ **
* Skontrolovať URL < br /> * /
funkcia check_url (reťazec $ url): int
{
// Odoslať cez 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);
// Získať stav a ukončiť pripojenie
$ status = curl_getinfo ($ ch, CURLINFO_HTTP_CODE);
curl_close ($ ch);
// Vrátiť
vrátiť stav $;
}

Jednoducho upravte e-mailovú adresu a požadované adresy URL, aby ste ich skontrolovali v hornej časti súboru, a uložte to niekde ako napr /home/myuser/check_sites.php . Ak chcete, aby sa tento skript spúšťal každých päť minút, a aby ste e-mailom informovali všetky stránky, ktoré nefungujú, pridajte úlohu crontab:

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

Automatizujte svoj život!

Týmto článkom ste Dúfajme, že pochopíte silu automatizácie crontabu a ako sa dá použiť na automatizáciu mnohých pozemských a opakujúcich sa úloh vo vašom život.

Dozvedeli ste sa, čo je crontab, o súbore crontab, ako sú formátované úlohy crontab a niektoré príklady toho, ako je možné ich využiť.

4 Aplikácie Linux Automation na zefektívnenie vašich úloh a pracovných postupov

Chcete ušetriť čas a vyhnúť sa opakujúcim sa úlohám? Odpoveďou je automatizácia! Tu môžete vyskúšať niekoľko užitočných aplikácií na automatizáciu počítačov so systémom Linux.

Súvisiace Témy
  • Programovanie
  • Linux
O nás Autor
Matt Dizak (13 článkov Zverejnené)
Viac od Matta Dizaka

Prihlásiť sa k odberu Newsletter

Pripojte sa k nášmu bulletinu s technickými tipmi, recenziami, bezplatnými elektronickými knihami a exkluzívnymi ponukami!

Jeden ďalší krok!!!

Potvrďte svoju e-mailovú adresu v e-mail, ktorý sme vám práve poslali.

.