Poměrně častá otázka u naplánovaných úloh, které se spouštějí na pozadí, zní:„Spouštějí se?“ Tyto úlohy, běžně známé jako úlohy cron, jsou úlohy, které se musí automaticky spouštět kvůli údržbě, zálohování a dalším funkčním potřebám webu a serveru.
Chcete-li zjistit, zda jsou vaše úlohy cron spuštěny, budete muset rozlišovat mezi plánováním úloh (crontab) a skutečnými úlohami samotnými (úlohy cron). Úlohy cron, které neprodukují výstupní výsledky, vyžadují, abyste se seznámili s protokoly serveru. Po zjištění výsledků protokolů serveru můžete odstraňovat problémy s úlohami cron, které nejsou spuštěny. Můžete také upravit skript tak, aby produkoval výstup, který ukazuje, že je spuštěn.
Následující článek vám pomůže rozlišit mezi úlohou crontab a úlohou cron, dvěma způsoby, jak můžete vidět, kdy je úloha cron spuštěna, a jak řešit problémy s úlohami cron, které neběží.
- Pochopení rozdílu mezi Crontab a Cron Job
- 2 způsoby, jak zjistit, zda vaše úloha Cron běží
- Odstraňování problémů s úlohou Cron
POZNÁMKA:Chcete-li provést tuto funkci, budete potřebovat přístup root na vašem VPS nebo vyhrazeném serveru.
Rozdíl mezi Crontab a Cron Job
Aby se předešlo záměně mezi administrátorem začátečníkem a vývojářem nebo zkušeným administrátorem serveru, je důležité porozumět významu termínů „crontab“ a „cron job“.
Pokud hledáte „plánování úloh cron“, najdete výraz crontab definovány nebo popsány téměř bez úvodu. Výraz crontab je zkratka pro „cron table“ a je to linuxový příkaz pro plánování úloh cron. Crontab je také skutečný textový soubor, který obsahuje plánování úloh cron.
úloha cron je skutečný kód nebo skript, který se pokoušíte spustit na pozadí v určitou naplánovanou dobu. Linuxový příkaz pro úlohu cron je jednoduše cron .
Pokud se vás tedy někdo zeptá, jak je naplánována úloha cron v crontab, víte, že se odvolává na informace o časování a frekvenci aplikované na crontab v textovém souboru známém jako crontab.
Pro účely cPanel lze úlohy crontab a cron upravovat přímo v rozhraní cPanel na Cron Jobs strana. Zde můžete vidět horní část Cron Jobs stránka:
Pokud máte nějaké existující úlohy cronu, uvidíte je ve spodní části Cron Jobs strana. Uvidíte časování pro úlohu cron (ze souboru crontab) a také kód pro úlohu cron. Na této stránce můžete přidávat, upravovat a odstraňovat úlohy cron a jejich odpovídající plány. Spodní část vypadá takto:
Pomocí informací o crontab poskytnutých v cPanel můžete určit, kdy se měla spustit úloha cron. V některých případech úlohy cron nevygenerují výstup, takže je důležité, abyste se seznámili s vygenerovanými soubory protokolu a jak v nich vyhledávat.
2 způsoby, jak zjistit, zda vaše úloha Cron běží
Kontrola souborů protokolu
V tomto příkladu budeme prohledávat protokol crontab pomocí smyšleného názvu souboru script.sh . Příkaz běžně používaný k vyhledávání souborů nebo znaků v určitém vzoru je grep . Tento příkaz terminálu lze použít k vyhledání instancí v souboru protokolu, když je spuštěn „script.sh“. Toto je příkaz používaný k vyhledání „script.sh“ v souboru protokolu cron:
grep „script.sh“ /var/log/cron
Pokud byste v souboru protokolu hledali jiný skript nebo termín, pak byste jednoduše nahradili „script.sh“ názvem souboru skriptu nebo textovým řetězcem, který se snažíte najít v protokolu.
Pomocí příkazu grep můžete zobrazit protokol, abyste viděli, kdy byl naposledy proveden konkrétní skript v úloze cron. Pokud úloha cron neprodukuje viditelný výstup, budete muset zkontrolovat, zda úloha cron skutečně proběhla.
Můžete například vidět, kdy byla naposledy provedena úloha cron pro vymazání mezipaměti. Poté byste zkontrolovali, zda je mezipaměť vymazána, tím, že zjistíte, zda je mezipaměť prázdná nebo ne. Zde je příklad zobrazení cronjob spuštěného kontrolou protokolu:
Protokol zobrazuje záznam o tom, kdy byl soubor spuštěn. Pokud potřebujete informace o přístupu k terminálu přes cPanel, podívejte se prosím na náš tutoriál.
Použití výstupu ve skriptu k zobrazení běžící úlohy cronu
Nejjednodušší způsob, jak zjistit, zda úloha cron (s nastavením crontab) funguje, je upravit existující úlohu cron tak, aby produkovala viditelný výstup. Do stávajícího skriptu můžete přidat řádek kódu, aby se při spuštění skriptu zobrazil výsledek. Pokud výsledek tohoto příkazu vytvoří výstup, můžete tento výstup použít k potvrzení, že váš cron skript běží.
Úpravu skriptu úlohy cron by neměl provádět uživatel, který není obeznámen se spouštěným kódem nebo skriptem. Vzhledem k tomu, že úlohy cron lze psát mnoha různými způsoby, možná budete muset mluvit se zkušeným vývojářem, který vám pomůže předejít jakýmkoli problémům s vaším webem.
Odstraňování problémů s úlohami Cron
Pokud nevidíte žádnou aktivitu v protokolu crontab nebo pokud nedostáváte e-mail týkající se aktivity cron (pro úlohy cron s výstupem), budete chtít nejprve znovu zkontrolujte, zda jsou časové parametry pro úlohu cron správné. To vám pomůže určit, zda (a kdy) má být cron spuštěn, abyste mohli správně odstraňovat možné problémy.
Pokud stále máte podezření na problém s úlohou cron, pak obvykle existují 3 možnosti, proč nemusí být spuštěna:
- Démon cron (systémový proces, který spouští úlohy cron) nemohl spustit skript nebo nemohl odeslat e-mail
- Došlo k problémům s poštovním serverem, který odesílá výstup nebo se e-mail ztratil
- Úloha cron nevytvořila výstup ani chybovou zprávu
Ve všech třech případech úloha cron tiše selhává. Jinými slovy, neexistuje žádný vizuální výsledek běhu úlohy cron.
V první možnosti budete muset zkontrolovat systémový protokol na webovém serveru, abyste mohli vyhledat chyby, které mohou být zaznamenány během pokusu o provedení úlohy cron. Poté můžete pomocí chybové zprávy určit, kde může skript úlohy cron selhat, a provést nezbytné opravy.
Možná budete muset projít protokolem poštovního serveru a znovu zkontrolovat, zda nedošlo k pokusu o odeslání e-mailu po dokončení úlohy cron. Nezapomeňte, že určená e-mailová adresa je nastavena v horní části stránky úlohy cron v cPanel. E-mailovou adresu můžete použít k oddělení pokusů o odeslání pošty v protokolu poštovního serveru.
Zkontrolovali byste také protokol poštovního serveru, pokud vidíte záznam spuštěné úlohy cron, ale žádný očekávaný e-mail. E-maily jsou odesílány po úspěšném dokončení úloh cron s výstupem.
Ve třetí možnosti budete muset do své úlohy cron přidat kód, aby produkovala snadno sledovatelný výstup pro ověření, že běží.
Pokud si nejste jisti, jak zkontrolovat protokoly poštovního serveru, obraťte se na technickou podporu své hostitelské služby nebo požádejte zkušeného správce, aby vám protokoly pomohl identifikovat problémy související s poštovním serverem.
Existuje mnoho způsobů, jak může úloha cronu selhat. Pokud si nejste jisti, jak kódovat úlohy cron, poraďte se se zkušeným vývojářem, který vám pomůže provést opravy nebo upravit kód pro účely odstraňování problémů.
Pokud potřebujete další informace o tomto tématu, můžete si přečíst našeho úplného průvodce nastavením úloh cron v cPanel.
Zajistěte, aby vaše firma, agentura nebo klienti prodejců byli vždy připojeni a zapnuti s naším optimalizovaným spravovaným hostingem VPS.