Porozumění a používání Cronu: Komplexní průvodce plánováním úloh
Cron, zkratka pro příkaz spustit online, je výkonný časový plánovač úloh v operačních systémech podobných Unixu. Termín cron je hra se slovem kronos or chronos, který v řecké mytologii představuje čas. Název cron pro plánovač úloh založený na čase odráží jeho funkci plánování a provádění úkolů v konkrétních časech nebo intervalech, což z něj činí vhodný odkaz na koncept času v mytologii.
Cron vám umožňuje automatizovat opakující se úlohy, spouštět skripty v určitých intervalech a udržovat efektivitu systému. Tento komplexní průvodce vás provede vším, co potřebujete vědět o cronu, od instalace po použití, klíčovou slovní zásobu a skutečné ukázky kódu.
Obsah
- co je cron?
- Instalace Cron
- Základní pojmy a terminologie
- Syntaxe Cron
- Příklady a případy použití
- Běžná úskalí a osvědčené postupy
- Další zdroje cronu
Co je Cron?
Cron je démon (proces na pozadí), který běží na systémech založených na Unixu, včetně Linuxu a macOS. Jeho primárním účelem je automatické provádění naplánovaných úloh. Tyto úlohy mohou sahat od jednoduchých skriptů až po údržbu systému a zálohování.
Instalace Cron
Ve většině unixových systémů je cron předinstalovaný. Jeho dostupnost můžete zkontrolovat otevřením terminálu a zadáním:
crontab -e
Pokud tento příkaz otevře editor tabulky cron, máte nainstalovaný cron. Pokud ne, můžete jej nainstalovat pomocí správce balíčků vašeho systému. Například na Ubuntu můžete použít:
sudo apt-get install cron
Cron pojmy a terminologie
Než se ponoříme do používání cronu, pojďme pochopit některé základní pojmy a terminologii:
- crontab: Zkratka pro cron tabulka, je to soubor, který obsahuje seznam naplánovaných úloh pro uživatele.
- Cron práce: Jedna úloha nebo příkaz naplánovaný ke spuštění v určitý čas.
- Pole: Každý cronjob má pět polí, která definují, kdy se úloha spustí:
- Minuta (0-59)
- hodina (0-23)
- Den v měsíci (1–31)
- Měsíc (1-12)
- Den v týdnu (0–7, kde 0 i 7 představují neděli)
Syntaxe Cron
Porozumění syntaxi položky crontab je zásadní. Jde to podle vzoru:
* * * * * command-to-be-executed
Zde je komentované vysvětlení, které můžete vložit do své úlohy cron:
# +---------------- minute (0 - 59)
# | +------------- hour (0 - 23)
# | | +---------- day of month (1 - 31)
# | | | +------- month (1 - 12)
# | | | | +---- day of week (0 - 6) (Sunday=0 or 7)
# | | | | |
* * * * * /var/www/html/myscript.php
Každá hvězdička (*) představuje pole ve výrazu cron. Chcete-li například naplánovat úlohu každý den v 3:30, použili byste:
30 15 * * * command-to-be-executed
Cron příklady a případy použití
Podívejme se na několik praktických příkladů pro ilustraci použití cronu:
- Denní spouštění skriptu: Chcete-li spustit skript každý den o půlnoci, můžete použít:
0 0 * * * /path/to/script.sh
- Spuštění skriptu každou hodinu: Pro hodinový úkol použijte:
0 * * * * /path/to/script.sh
- Týdenní záloha: Chcete-li naplánovat týdenní zálohování na neděli ve 2:XNUMX, použijte:
0 2 * * 0 /path/to/backup-script.sh
- Spuštění úkolu v konkrétních měsících: Chcete-li spustit úlohu pouze v lednu a červenci v 8:30:
30 8 * 1,7 * /path/to/script.sh
Cron úskalí a osvědčené postupy
- Proměnné prostředí: Ujistěte se, že vaše úlohy cron nastavují potřebné proměnné prostředí, protože úlohy cron nedědí proměnné prostředí vašeho shellu.
- Oprávnění: Ujistěte se, že jste nastavili oprávnění k souboru skriptu jako spustitelný. Pokaždé, když jsem znovu uložil svůj skript, zjistil jsem, že je třeba znovu nastavit oprávnění!
- Proměnné cesty: Zadejte úplnou cestu ke spustitelným souborům a skriptům v úlohách cron, abyste se vyhnuli problémům s relativními cestami.
- Testování: Před nastavením kritických úloh cron je otestujte v bezpečném prostředí, abyste se ujistili, že budou fungovat podle očekávání.
- Přihlášení: Přesměrujte výstup vašich úloh cron do souboru protokolu, abyste mohli sledovat jejich provádění a případné chyby.
0 0 * * * /path/to/script.sh >> /path/to/cron.log 2>&1
Tato úloha cron spouští skript /path/to/script.sh
každý den o půlnoci a výstup (stdout i stderr) generovaný skriptem je připojen k souboru protokolu
/path/to/cron.log
. Toto je běžná praxe pro zachycení a protokolování výstupu úloh cron pro účely monitorování a odstraňování problémů. Pojďme si tuto specifickou syntaxi úlohy cron rozebrat:
- *0 0 * * *: Tato část definuje plán, kdy se má úloha cron spustit. V tomto případě je naplánováno spuštění každý den o půlnoci (0 minut po 0 hodinách).
- /cesta/k/script.sh: Toto je příkaz nebo skript, který se má spustit při spuštění úlohy cron. Tento příklad ukazuje skript umístěný na
/path/to/script.sh
. - >> /cesta/k/cron.log: Tato část přesměruje standardní výstup (stdout) úlohy cron do souboru protokolu s názvem
cron.log
se nachází na/path/to/
,>>
operátor připojí výstup k souboru protokolu, takže pokud soubor neexistuje, bude vytvořen, a pokud již existuje, bude výstup přidán na konec souboru. - 2> & 1: Používá se pro přesměrování standardního výstupu (stdout) i standardní chyby (stderr) do stejného souboru protokolu. The
2
představuje stderr a1
představuje stdout. Tak,2>&1
znamená, že stdout i stderr jsou přesměrovány do stejného souboru protokolu zadaného dříve.
Cron je cenný nástroj pro automatizaci úloh na systémech založených na Unixu. Díky svým flexibilním možnostem plánování může zjednodušit správu systému a zvýšit efektivitu. Pochopením jeho syntaxe a dodržováním osvědčených postupů můžete využít sílu cronu k efektivní automatizaci vašich rutinních úkolů.
Další zdroje Cron
- Unixový démon - Dean Wilson