Windows má několik způsobů, jak automatizovat úkoly. Nejběžnějším nástrojem je Windows Plánovač úloh, ale pokud jste s použitím Windows Subsystem for Linux (WSL) , Je tu také démon cron, který běží úkoly na pozadí pro váš WSL nainstalovat.
Cron není spuštěna ve výchozím nastavení
V systémech Windows 10 a Windows 11, cron je zahrnuta s prostředím Linux, jako je Ubuntu. Potíž je v tom, že WSL nespustí cron automaticky, což znamená, že vaše automatizovaných úloh se nedostanou provedeny ve výchozím nastavení.
Chcete-li tento problém odstranit, můžete spustit cron ručně pokaždé, když otevřete příkazový řádek, ale ruční spuštění nástroj, který to má na automatizaci úkolů je tak trochu mimo mísu.
Naštěstí je tu snadný způsob, jak opravit, a to vyžaduje použití Plánovač úloh.
Pokud jste nikdy nepoužívali cron v Linuxu spouštět úlohy, podívejte se na naše předchozí návod na jak naplánovat úlohy na Linux . Pro naše účely, budeme předpokládat, že jste již vytvořili nějaké cron ve svém WSL instalaci a že budete potřebovat pomoc, ujistěte se, že běhají místo hlídání cron po celou dobu.
Pro účely tohoto návodu budeme používat
sudo service
ke kontrole a spustit cron, což je doporučený způsob, jak zastavit a spustit služby na moderních verzích Ubuntu-nejpopulárnější distribuce pro WSL.
Všimněte si také, že tento návod předpokládá, že máte práva správce vaší verzí WSL. Pokud jste jediným uživatelem počítače a povolen WSL na vlastní pěst, pak máte administrátorská práva.
Spropitné: Tato funkce funguje Windows Subsystem for Linux v systému Windows 11 Taky ne jen na Windows 10.
PŘÍBUZNÝ: Jak plánovat úlohy na Linux: An Introduction to Crontab souborů
Připravte Linux
První věc, kterou musíme udělat, je, aby se počítač spustit cron bez hesla. Při spuštění služby, jako cron, můžete použít příkaz
sudo spuštění služby cron
. Ale tento příkaz je nutné heslo, které systém Windows nebude mít přístup k při spuštění. To, jak vyřešit tento problém je vypnout požadavek na zadání hesla pro tento příkaz.
K tomu otevřete okno terminálu WSL a napište
sudo visudo
. Stiskněte klávesu Enter na klávesnici, zadejte své heslo Linux, a znovu stiskněte klávesu Enter. Pokud používáte Ubuntu, to otevře soubor „sudoers“ pomocí začátečník-friendly
Nano příkazového řádku textový editor
.
sudoers
je soubor pro správce systému, které mohou měnit oprávnění a přístupová práva pro uživatele.
Přidejte následující příkaz do dolní části souboru sudoers, a poté stiskněte Ctrl + O pro uložení a Ctrl + x ukončete souboru.
% sudo ALL = NOPASSWD: / usr / sbin / služba spuštění cron
Tento příkaz sudoers říká, že každý uživatel, který má dostatečná oprávnění k použití příkazu sudo (které byste měli zahrnout) nevyžaduje heslo pro spuštění příkazu
sudo spuštění služby cron
, Který začíná démona cron.
Po uložení souboru, můžete zjistit, že příkaz dělá svou práci napsáním
sudo spuštění služby cron
A to by se mělo začít cron bez požadavku na zadání hesla. Pokud to funguje, pojďme se odbočit cron opět vypne, takže můžeme ověřit, že tento úkol budeme vytvářet v dalším kroku funguje správně. K tomu, spusťte
sudo service cron zastávka
.
Set Up Cron v Plánovači úloh systému Windows
To je první fáze naší cestě k automatizaci cron. Přejděme k části 2 s Plánovač úloh. Klepněte na tlačítko Windows na klávesnici, a pak vyhledat „Plánovač úloh.“ Spusťte „Plánovač úloh“ zkratku.
Když se spustí, vzhled v sekci „Akce“ a vyberte „Vytvořit základní úlohu.“
Otevře se základní průvodce úkolem. Za prvé, bude vás požádat, abyste jmenovali úkol a dejte jí popis. Můžete zadat, co zde chcete. Zavolali jsme úkol "Cron" a popis je, "úkol spustit Cron na spuštění systému." Nyní hit "Další"
V následující části se dostaneme do podnikání. Za prvé, Windows chce vědět, kdy chceme spustit úkol. Vyberte "Když počítač spustí" a klikněte na tlačítko "Další"
V další části chceme "zahájit program". Tato možnost je standardně vybrána možnost, takže klikněte na tlačítko Další.
Nyní musíme specifikovat program, který chceme spustit, což je WSL. Do pole "Program / Script" zadejte následující do zadávání textu položky:
C: Windows System32 wsl.exe
Musíme také přidat nějaké argumenty, protože vše, co jsme udělali tak daleko, začínají WSL, ale uvnitř WSL, musíme říct Ubuntu, abych začal Cron. Takže v poli "Přidat argumenty", přidat:
SUDO / USR / SBIN / SERVIS CRON START
Stiskněte "Další" ještě jednou, zaškrtněte políčko, které říká "Otevřít dialogové okno Vlastnosti při klepnutí na tlačítko Dokončit" a potom klepněte na tlačítko Dokončit.
Úkol je vytvořen, ale musíme udělat jednu poslední věc, abyste se ujistili, že všechno funguje. Otevře se nové okno, které zobrazuje souhrn, který jste vytvořili, ale je nastaven pouze pro spuštění, když budete přihlášeni. Musíme vybrat rádiové tlačítko, které říká "Spustit, zda je uživatel přihlášen nebo ne," a stiskněte tlačítko "OK."
Pojďme testovat náš úkol dvěma způsoby. Nejprve v hlavním okně plánovače úloh přejděte dolů, dokud neuvidíte název úlohy. Pokud jste použili název "Cron", mělo by se nalézt směrem k horní části seznamu. Klepněte pravým tlačítkem myši na úkol a vyberte možnost Spustit.
Pak se vraťte zpět do svorky WSL a zadejte
Stav SUDO SERVICE CRON
a mělo by říct, že Cron běží. Pokud tomu tak není, zkontrolujte, zda jste zadali vše správně v předchozích krocích.
Pokud všechno fungovalo správně v první kontrole, je čas na velký test. Restartujte počítač a když se vrátíte, otevřete terminál WSL a spusťte
Stav SUDO SERVICE CRON
, což by mělo hlásit, že Cron je nyní spuštěn.
Gratulujeme! Jste si vzal svůj první krok do většího, automatizované světě. S cron běží na pozadí, budou cronjobs že nakonfigurované v WSL automaticky spustit podle plánu.