Využijte výhod příkazu crontab Linux k automatizaci různých pozemských a opakujících se úkolů a zjednodušení života. Tento vynikající a snadno použitelný nástroj v kombinaci s určitým skriptováním může nejen automatizovat nejrůznější úkoly, ale také pomoci vyhnout se jednoduchým lidským chybám nebo zapomnění.
Zde se dozvíte, co je crontab, jak přidávat automatizované úlohy a několik příkladů z reálného světa.
Co je Crontab?
Crontab je proces démona, který běží na pozadí téměř na všech počítačích se systémem Linux a slouží k plánování a provádění automatizovaných úkolů ve stanovených časových intervalech. To je také často používáno vývojáři softwaru ke spuštění časově náročných úkolů na pozadí.
Může to být cokoli, mimo jiné posílání hromadných e-mailů, kontrola vašeho twitterového zdroje, provádění zálohování nebo jednoduše provádění připomenutí.
Základní příkazy Crontab
Každý uživatel systému Linux v počítači má svůj vlastní soubor crontab, který obsahuje jeho aktivní úlohy crontab. Zde je několik základních příkazů terminálu, které použijete k prohlížení a úpravám souboru crontab:
- crontab-l Seznam všech úloh crontab.
- crontab -e Upravte soubor crontab.
- crontab -r Odeberte všechny položky ze souboru crontab.
Výše uvedené příkazy budou pro aktuální uživatel soubor crontab. Pokud potřebujete upravit soubor crontab jiného uživatele, jednoduše použijte -u volba. Například můžete upravit jdoe soubor uživatele crontab s příkazem:
Chcete lépe spravovat uživatele v systému Ubuntu Linux? Odpověď je vytvořit skupiny a poté použít funkci přidání uživatele Ubuntu.
sudo crontab -ujdoe -e
Formát úloh Crontab
Každá úloha crontab se skládá z jednoho řádku a má formát níže:
PŘÍKAZ MINUTY HODINY DEN MĚSÍC WEEKDAY
Níže uvedená tabulka vysvětluje různé prvky úlohy crontab:
Živel | Ranage | Popis |
---|---|---|
Minuta | 0 - 59 | Minuta k provedení úlohy crontab v. |
Hodina | 0 - 23 | Hodina k provedení úlohy crontab. |
Den | 1 - 31 | Den v měsíci, kdy se má vykonat úloha crontab. |
Měsíc | 1 - 12 | Měsíc k provedení úlohy crontab. |
Všední den | 0 - 6 | Den v týdnu, kdy se má vykonat úloha crontab. |
Příkaz | Libovolný příkaz Linuxu, který můžete spustit na terminálu. |
Můžete použít hvězdičku (*) v kterémkoli z polí k označení zástupného znaku, což znamená, že úloha crontab se spustí bez ohledu na toto časové období. Například níže uvedená úloha crontab se spustí každou noc přesně v 3:20:
20 3 * * * /root/backup.sh
Více hodnot
Každé časové období může také zahrnovat více prvků. Přesné hodnoty můžete určit tak, že je oddělíte čárkou a úloha crontab níže se spustí každou hodinu ve 20 a 50 minutách po hodině:
20,50 * * * * /path/to/command.sh
Pokud však chcete spustit úlohu crontab v určitých intervalech v časovém období, můžete použít */DOBAa níže uvedená úloha crontab se automaticky spustí v 15 minutách po hodině každé tři hodiny:
15 * / 3 * * * /path/to/command.sh
Udržování klidných pracovních míst společnosti Crontab
Ve všech případech možná budete chtít eliminovat veškerý výstup z úloh crontab, aby neskončily ve složce pošty vašeho systému. Můžete to udělat připojením > / dev / null 2> & 1 na jakoukoli práci crontab. Například:
0 6 15 * * /path/to/backup.sh> / dev / null 2> & 1
Přidávání úloh Crontab
Nejpoužívanější metodou pro přidání nebo úpravu úloh crontabu je obvykle crontab -e příkaz. Spusťte tento příkaz v terminálu:
crontab -e
Tím se otevře a textový editor jako nano s obsahem vašeho souboru crontab. Každá úloha crontab je umístěna na jednom řádku a můžete podle potřeby přidávat, upravovat a odebírat řádky. Po dokončení uložte a zavřete soubor stisknutím Ctrl + W, následovaný Y a Enter klíče, které okamžitě aktivují všechny úlohy crontab v souboru.
Zkratka pro přidání úloh
Místo ruční úpravy souboru crontab existuje rychlý jediný příkaz, pomocí kterého můžete přidat úlohu. Například pokud chcete přidat tuto úlohu crontab, která běží každou neděli ve 14:00:
0 14 * * 0 /path/to/command.sh
Úlohu můžete přidat do souboru crontab pomocí jediného příkazu:
(crontab -l; echo "0 14 * * 0 /path/to/command.sh";) | crontab
Výše uvedený příkaz jednoduše vypíše všechny úlohy, které jsou aktuálně ve vašem souboru crontab, vytiskne novou úlohu a vše převede do kanálu crontab nahrazení jeho obsahu.
Výpis / odebrání souboru Crontab
Seznam všech úloh, které jsou aktuálně aktivní ve vašem souboru crontab, můžete zobrazit pomocí příkazu:
crontab -l
Můžete také odebrat všechny úlohy crontab a vyprázdnit obsah souboru crontab pomocí příkazu:
crontab -r
Příklad: Hrajte zvuky!
Potřebujete během práce každé dvě hodiny rychlé připomenutí, abyste věděli, že uplynul čas? Získejte svůj oblíbený zvukový klip téměř v jakémkoli formátu (.wav, .mp4, cokoli) a pokud je uložen v (například) /home/myuser/myalert.wav nechat to automaticky hrát s úlohou crontab:
0 * / 2 * * * aplay /home/myuser/myalert.wav
Co takhle dát vám pěkný odposlech z týdenní práce s vaší oblíbenou skladbou automaticky přehrávanou v 17:00 každý pátek odpoledne? Popadněte svůj oblíbený klip k písni, a pokud je uložen, řekněme /home/myuser/friday_song.mp4 přidali byste úlohu crontab:
0 17 * * 5 aplay /home/myuser/friday_song.mp4
Příklad: Zálohování souborů pomocí Rsync
Jedním z mnoha vynikajících použití crontabu je schopnost automaticky zálohovat soubory na vzdálený server. Tímto způsobem podstatně snížíte riziko, že někdy ztratíte důležitá data vynikající rsync návod.
Příklad: Zkontrolujte, zda jsou weby online
Možná budete chtít každých pět minut automaticky kontrolovat, zda jsou různé weby online, či nikoli, a upozornit je e-mailem, pokud nějaké nefungují. Tady je šikovný malý skript PHP, který to udělá.
php
// E-mailová adresa, která upozorňuje na výpadky stránek
$ email = '[email protected]';
// Definujte adresy URL ke kontrole
$ urls = [< br /> ' https://apexpl.io',
'https://google.com',
'https://some-junk-site-that-will-hopefully-never-exist.com'
];
// Projděte adresy URL
$ down = [];
foreach ($ URL jako $ URL) {
// Zkontrolovat URL
$ status = check_url ($ URL);
if ($ status! = 200) {
$ down [] = $ url;
}
}
// Odeslat e-mail, pokud máme dole stránky
if (počet ($ dolů)> 0) {
mail ($ email, "Urgent - Sites Down!", "Váš robot zjistil, že následující weby jsou aktuálně dole:
". implode ("
", $ dolů));
}
// Ukončit
ukončit (0);
/ **
* Zkontrolovat URL < br /> * /
funkce check_url (řetězec $ url): int
{
// Odeslat pomocí 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ískat stav a ukončit připojení
$ status = curl_getinfo ($ ch, CURLINFO_HTTP_CODE);
curl_close ($ ch);
// Vrátit
vrátit stav $;
}
Jednoduše upravte e-mailovou adresu a požadované adresy URL, abyste zkontrolovali v horní části souboru, a uložte to někde jako např /home/myuser/check_sites.php . Chcete-li, aby se tento skript spouštěl každých pět minut a upozorňoval vás e-mailem na jakékoli nefunkční weby, přidejte úlohu crontab:
* / 5 * * * * / usr / bin / php /home/myuser/check_sites.php> / dev / null 2> & 1
Automatizujte svůj život!
S tímto článkem vy snad pochopí sílu automatizace crontabu a jak ji lze použít k automatizaci mnoha pozemských a opakujících se úkolů ve vašem život.
Dozvěděli jste se, co je to crontab, o souboru crontab, jak jsou formátovány úlohy crontabu a některé příklady z reálného světa, jak jej lze využít.
Chcete ušetřit čas a vyhnout se opakujícím se úkolům? Odpověď je automatizace! Zde můžete vyzkoušet několik užitečných aplikací pro automatizaci počítačů se systémem Linux.
- Programování
- Linux
Přihlásit se k odběru Zpravodaj
Připojte se k našemu zpravodaji s technickými tipy, recenzemi, bezplatnými elektronickými knihami a exkluzivními nabídkami!
Ještě jeden krok!!!
Potvrďte prosím svou e-mailovou adresu v e-mail, který jsme vám právě poslali.