
Brian Curtis
0
4706
1442
Věděli jste, že Blade Runner je nastaven v roce 2019? To jsou za tři roky! Nemluvě Zpět do budoucnosti 2, kde cestují časem do roku 2015. Přesto nemáme létající auta a mezi námi nejsou žádní replikátoři (pokud vím).
Je snadné být zklamán současnou technologií, když ji porovnáme s fiktivními vyobrazeními budoucnosti. V dnešní době mohou naše telefony, počítače a dokonce i domy dělat úžasné věci. 5 DIY projektů domácí automatizace, jak začít s vaším inteligentním domovem 5 DIY projekty domácí automatizace, jak začít s vaším chytrým domovem, pokud jde o vytváření inteligentních domů, většina lidí prostě nevím, kde začít. Zde je pět základních projektů inteligentních domů pro začátečníky, které můžete vytvořit právě teď. . Jedním z nich je schopnost automatizovat úkoly.
Každý uživatel systému Linux může mít z plánovacích úkolů užitek, ať už se týkají systému (jako je čištění starých protokolů a aktualizace balíčků Jak aktualizovat jednu nebo všechny aplikace v systému Linux během několika sekund Jak aktualizovat jednu nebo všechny aplikace v systému Linux během několika sekund Terminál Linux usnadňuje aktualizaci jedné aplikace ve vašem počítači nebo použití všech dostupných aktualizací najednou. Zde je návod.) nebo obsluhy uživatele (kontrola e-mailu, stahování podcastů…). Uživatelé Windows měli Plánovač úloh 4 nudné úkoly, které můžete automatizovat pomocí Plánovače úloh systému Windows 4 Nudné úkoly, které můžete automatizovat pomocí Plánovače úloh systému Windows Váš čas je příliš cenný na to, abyste se zbytečně opakovali. Ukážeme vám, jak automatizovat a naplánovat úkoly. Máme také několik skvělých příkladů. od Windows 95. Obslužný program, který v systému Linux provádí stejnou úlohu, se nazývá cron a zde si vysvětlíme, jak jej používat.
Co je Cron?
Cron je systémová služba, která běží na pozadí, kontroluje naplánované úlohy a provádí je, pokud je najde. Úkoly - také nazývané “cron jobs 5 Nápady pro začínajícího Linuxu pro Cron Jobs a Shell skripty 5 Nápady pro začínajícího Linuxu pro Cron Jobs & Shell skripty S bash skriptováním můžete provádět složitou řadu úkolů najednou, takže je to skvělé pro komplikované a opakující se potřeby. Je to také skvělý způsob, jak poznat terminál. ” - jsou definovány ve speciálních konfiguračních souborech (crontabs), které cron prohledává každou minutu. Na různých distribucích Linuxu lze najít několik verzí cronu. Například Fedora vidlička cron se nazývá cronie a existují také fcron, bcron a dcron. Některé mají další funkce, zatímco jiné se více zaměřují na zabezpečení, ale všechny jsou založeny na stejném nápadu.
Tato příručka je určena pro vixie-cron, což je nejrozšířenější verze cronu a verze, kterou najdete na Ubuntu a jeho derivátech. Přestože většina pokynů platí i pro jiné implementace cron, mohou existovat drobné rozdíly, takže pokud se rozhodnete přepnout, podívejte se na jejich manuály.
Co je Crontab?
Pokud jste vážně ve správě svého času, pravděpodobně máte nějaký kalendář. Uspořádejte si čas pomocí těchto 4 aplikací pro Linux v kalendáři Uspořádejte si čas pomocí těchto 4 aplikací pro Linux v kalendáři Má smysl stále používat aplikaci pro stolní kalendáře? Myslíme si to zejména proto, abychom umožnili přístup k událostem na jakémkoli synchronizovaném zařízení. Tyto aplikace pro kalendář v systému Linux jsou zvláště užitečné. - aplikace nebo alespoň kousek papíru. Crontab je velmi podobný kalendáři vašeho počítače. Obsahuje informace o naplánovaných úlohách a sděluje cronu, jaké příkazy mají být spuštěny.
Ve vašem systému je ve skutečnosti několik crontabů. Každý uživatel má svůj vlastní crontab, včetně root (administrátor). Uživatelské crontabs jsou uloženy v / var / cívka / cron / crontabs /
. crontab -l
příkaz zobrazí seznam crontab souboru pro aktuálního uživatele. Můžete zkontrolovat kořenový crontab pomocí sudo crontab -l
.
Navíc existuje soubor crontab systému / etc / crontab
který se používá pro úkoly celého systému. Obvykle mají podobu spustitelných skriptů v kořenovém vlastnictví /etc/cron.hourly/
, /etc/cron.daily/
, /etc/cron.weekly/
, a /etc/cron.monthly/
složky a na některých distribucích /etc/cron.d/
složku také. Obecně řečeno byste neměli řešit tyto úkoly, protože většina z nich je vytvářena automaticky nainstalovanými aplikacemi.
Jak naplánovat úkoly s Cronem
Zní to jednoduše: Chcete-li naplánovat úkoly, jednoduše je přidejte do svého crontabu. Protože crontab je speciální konfigurační soubor, nedoporučuje se jej ručně upravovat. Místo toho použijte crontab -e
příkaz. Chcete-li upravit crontaby root nebo jiných uživatelů, spusťte příkaz s oprávněními správce a za možnost -u přidejte své uživatelské jméno:
sudo crontab -u root -e
sudo crontab -u uživatelské jméno -e
Soubor crontab má dvě sekce. První obsahuje proměnné prostředí, které jsou nastaveny automaticky. Můžete bezpečně změnit proměnné PATH, HOME a SHELL a upravit proměnnou MAIL.
Druhá část souboru je skutečná “jízdní řád” s naplánovanými úkoly. Každý úkol zabírá řádek (řádek) v tabulce, přičemž sloupce představují následující hodnoty:
Chcete-li úspěšně naplánovat úkoly, potřebujete vědět něco o syntaxi crontab:
- Čísla by měla být celá čísla (celá čísla) a hvězdičku (*) v libovolném sloupci můžete použít jako zástupný znak, což znamená “každou minutu / den / měsíc… ”.
- V “Den v měsíci” Ve sloupci buďte opatrní, abyste nenastavili datum, ke kterému nedojde v měsíci uvedeném v “Měsíc” sloupec (například 30. února).
- Oba “Měsíc” a “Den v týdnu” sloupce přijímají krátká jména pro měsíce a dny, respektive nerozlišují velká a malá písmena.
- V “Den v týdnu” sloupec, 0 i 7 znamenají neděli. “Hodina” sloupec vyžaduje “vojenský čas” (24hodinový) formát, ale nemůžete použít číslo 24 - místo toho 0 znamená 12 hodin. Je to proto, že hodnoty pro minutu, hodinu a den v týdnu začínají na 0 místo 1.
- Sekundy nejsou podporovány, takže nemůžete naplánovat úkol na konkrétní sekundu.
Můžete udělat časový rozvrh včetně časových rozpětí pomocí spojovníku (14-22 pod “Hodiny” spustí úlohu nepřetržitě od 14:00. do 10:00) nebo spusťte jednu úlohu několikrát definováním seznamu odděleného čárkami (1,3,5 pod “Den v týdnu” úkol bude spuštěn v pondělí, středu a pátku).
Mezitím jsou hodnoty stupňů reprezentovány lomítkem (/) a ty ukazují množství přeskočení v rozsahu; například, 3-20 / 3 pod “Hodiny” spustí úlohu každé tři hodiny od 3:00 do 20:00. To je užitečné, pokud chcete opakovat úkoly každých X hodin, protože můžete kombinovat hvězdičku a krok (* / X). Pokud používáte čísla, můžete rozsahy kombinovat se seznamy a kroky s rozsahy. Jinými slovy, kombinace jako “jan-mar” nebo “Út, Pá-Ne” nejsou povoleny.
Případně namísto nastavení hodnoty pro každý sloupec můžete na začátek řádku napsat znak @weekly, @yearly, @monthly, @daily nebo @hourly, následovaný příkazem. Takto naplánované budou úkoly spuštěny v první možné instanci, takže @ týdenní den by se měl spustit @weekly. Pokud chcete spustit úlohu ihned po spuštění systému (znovu), použijte příkaz @reboot.
V tomto příkladu jsme naplánovali zálohu každý den v 08:20 a 20:20. Tapeta se automaticky mění každé tři dny o 19:00 a skript zkontroluje nové podcasty. 10 nejlepších aplikací pro správu podcastů v systému Linux 10 nejlepších aplikací pro správu podcastů v systému Linux Linux nemá velký výběr klientů podcastů, ale nebojte se - téměř každý moderní hudební přehrávač pro Linux může sloužit jako podcatcher. Pojďme se podívat na možnosti. každé pondělí v 10:20 a 20:20. Připomenutí narozenin je nastaveno na 25. března a běží každých 30 minut ve stanoveném časovém rámci. Skript nakonec kontroluje e-mail každých 15 minut od 8 do 20, ale pouze v pracovní dny. Můžete si uspořádat crontab s mezerami a tabulátory mezi sloupci, ale ne uvnitř nich (nevkládejte mezery mezi čárky, spojovníky a lomítka).
Pokud to všechno zní příliš komplikovaně, nebojte se - vždy se můžete spolehnout na internet. Nástroje jako Crontab Generator, Crontab.guru a Corntab vám pomáhají vytvářet cronové úlohy bez znalosti syntaxe crontab. Ukazují, kdy bude úloha spuštěna příští, a poskytují šablony pro běžně používané výrazy. Crontab.guru je to nejlepší z parta, protože vám umožňuje live-test syntaxi crontab, takže můžete okamžitě vidět, jak vaše změny ovlivní plán.
Jak zkontrolovat, zda jsou prováděny úlohy Cron
Cron má běžet tiše na pozadí a nechat vás nerušeně pracovat, zatímco se stará o vaše úkoly. Ale jak se můžete ujistit, že to skutečně funguje?
Cron má vestavěnou e-mailovou notifikační funkci, ale to vyžaduje nastavení alespoň jednoduchého lokálního poštovního serveru. Jak e-mailový server funguje? [Vysvětlení technologie] Jak funguje e-mailový server? [Vysvětlená technologie] Za každým e-mailem je výkonný modul nazývaný e-mailový server, který posílá e-maily přes internet. . Není mnoho domácích uživatelů ochotných to nakonfigurovat a ne mnoho distribucí to ve výchozím nastavení poskytuje (například Ubuntu ne). Nejrychlejší způsob kontroly na cronu je skenování systémového protokolu pomocí tohoto příkazu:
cat / var / log / syslog grep -i cron
Možnost -i způsobí, že náš dotaz nebude rozlišovat velká a malá písmena. Je možné, že cron bude někde mít svůj vlastní soubor protokolu / var / log /
, tak se tam podívejte, pokud tento příkaz nepovede k užitečným výsledkům.
Pokud potřebujete uložit výstup konkrétní úlohy cron, můžete ji přesměrovat do souboru. Zadejte cestu a název souboru v posledním sloupci crontab za příkazem, který chcete spustit:
30 * * * * / usr / bin / yourcommand> /home/username/logfile.txt
Použití jediného symbolu> přepíše soubor při každém spuštění příkazu. Chcete-li tomu zabránit, použijte místo toho >> - připojí výstup k existujícímu souboru.
Co když Cron nefunguje?
Může se stát, že jste přidali některé úkoly, zkontrolovali systémové protokoly a zjistili, že neprovádějí, jak by měli. Zde je několik věcí, které byste měli zvážit - a buďte opatrní - při pokusu o vyřešení problému.
Je spuštěna služba cron?
Jak víte, démon cron by měl běžet na pozadí. Ujistěte se, že tomu tak skutečně je. Služba se nazývá crond nebo jen cron.
Pro distribuce pomocí systemd:
systemctl status cron
Pro distribuce pomocí Upstart:
status cron služeb
Pokud vaše distribuce používá “starý” System V init přístup, seznam všech služeb s:
úvodní seznam
a uvidíme, jestli je uveden cron.
Můžete dokonce mít soubor crontab?
Zkontrolujte svůj /atd
Složka pro soubory pojmenované cron.allow
a cron.deny
. Na Ubuntu by nemělo existovat, což znamená, že všichni uživatelé mohou spravovat cronové úlohy. Pokud však existuje cron.allow
soubor, musí obsahovat vaše uživatelské jméno. Naopak, pokud cron.deny
soubor existuje, vaše uživatelské jméno by v něm nemělo být. Opouštět cron.deny
soubor prázdný znamená, že pouze root a uživatelé uvedení v cron.allow
může mít crontab soubory.
Jsou vaše proměnné nastaveny správně?
Crontab automaticky nastaví vaši proměnnou SHELL na / bin / sh
. Pokud však máte na výběr skořápku, je 7 důvodů, proč byste měli nainstalovat Fish Shell. 7 důvodů, proč byste měli nainstalovat Fish Shell. Nelíbí se vám, jak funguje váš Linuxový terminál? Proč neinstalovat nový shell? Jednou takovou skořápkou jsou ryby, které zavádějí funkce, které by se měly stát běžnou, ale nikoli. Podívejme se na to. nebo bash, měli byste změnit proměnnou SHELL. Podobně proměnná PATH ve výchozím nastavení obsahuje pouze několik adresářů. Právě zde crontab hledá příkazy pro Linux. Pokud vaše cronová úloha selhává, může to být proto, že crontab ne “vidět” příkaz, který jste použili. Chcete-li tomu zabránit, přidejte do proměnné PATH adresáře obsahující příkazy oddělené dvojtečkami:
PATH = / opt / myapp / bin: / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin
Pokud to ve svém crontabu nechcete upravovat, můžete tyto proměnné definovat ve skriptu, který chcete spustit jako úlohu cron.
Je vaše crontab formátování na místě?
Syntaxe Crontab není přesně hladká plachtění. I když to ověříte pomocí online nástrojů zmíněných výše, drobná chyba by stále mohla zabránit cronovi v provádění vašich úloh. Dejte pozor:
- na konec souboru crontab přidejte prázdný řádek
- unikne znak% s lomítkem, pokud to váš příkaz obsahuje
- napsat komentáře jako samostatné řádky začínající na #. Nezapisujte komentáře na stejný řádek jako proměnné prostředí nebo do blízkosti příkazů cron.
Opravdu musíte terminál používat?
Rozhodně ne. Uživatelé KDE mohou naplánovat úlohy cronu pomocí KCron, který je přístupný z internetu Nastavení systému> Plánovač úloh modul. Díky přímému rozhraní, které vám umožní vybrat a vyladit vše během několika kliknutí myší, je KCron potěšením používat.
Pokud dáváte přednost GNOME, pak je pro vás GNOME Schedule. Tento přístup je podobný, i když rozhraní je, podle očekávání, mírně odlišné. Nabízí pokročilý režim pro jemnozrnné modifikace a přichází s apletem panelu, ze kterého můžete přímo spravovat úkoly.
Měli byste si být vědomi jiných řešení, jako je Crontab-UI a Minicron. Jsou vhodnější pro uživatele, kteří spravují více strojů a cronových úloh, a jednou z jejich nejlepších funkcí je webové rozhraní.
Existují nějaké alternativy Cron?
Zatímco cron je do značné míry standardní plánovač úloh pro Linux Schedule & Automate Tasks V Linuxu s Gnome Schedule Schedule & Automate Tasks V Linuxu S Gnome Schedule, rozhodně to není jediný. Příkaz at je ideální pro rychlé, jednorázové úlohy, které lze naplánovat přímo z příkazového řádku bez zvláštních konfiguračních souborů. Pokud potřebujete více, existuje GNUbatch, který zavádí pojem závislosti. S GNUbatch můžete nastavit specifické podmínky pro každou úlohu nebo nastavit naplánovanou úlohu na předchozí. Něco podobného lze dosáhnout pomocí systémových časovačů. I když je konfigurace méně praktická než cron, časovače systemd si mohou pamatovat, zda úkol zmeškal svůj plán, když byl počítač vypnutý, a spustit jej při příštím zapnutí.
To je něco, co cron nemůže udělat sám. Jako takový je vhodný pro servery a počítače, které jsou neustále spuštěny, ale nevykoná úlohu, která byla naplánována, když byl počítač vypnutý. Zde přichází do hry anacron. Technicky to není “alternativní” nebo náhrada za cron. Místo toho, anacron doplňuje cron a měl by být použit spolu s ním, což je případ mnoha distribucí Linuxu, včetně produktů Ubuntu a Ubuntu. Anacron se přihlásí, kdy byla úloha naposledy spuštěna, a zkontroluje, zda se při vypnutí systému nevyskytly nějaké výskyty. Spustí je, když zapnete počítač, ale každý úkol lze provést pouze jednou denně.
Některé verze cronu, jako je fcron, ve výchozím nastavení nabízejí funkce anacronu. Pokročilí uživatelé mohou chtít podívat na Hcron nebo SuperCron, které přinášejí mnoho vylepšení základních funkcí cronu, ale jsou také trochu náročné na správu.
Co o tobě? Jak organizujete své digitální úkoly? Jaké úkoly plánujete v systému Linux? Podělte se o své příběhy a tipy pro použití cron v komentářích.
Image Credit: rozvrhová deska od Gonzalo Aragonea přes Shutterstock