Skip to content

Przegląd funkcji Task Scheduler

Task Scheduler (Harmonogram zadań) służy do automatyzacji okresowych zadań w WSL, eliminując potrzebę ręcznego wykonywania powtarzalnych czynności konserwacyjnych. Zapewnia wizualny interfejs zarządzania, umożliwiający tworzenie i zarządzanie zaplanowanymi zadaniami bez konieczności zapamiętywania złożonych parametrów wiersza poleceń.

Przykładowe scenariusze użycia:

  • Regularne tworzenie kopii zapasowych dystrybucji w WSL
  • Wykonywanie niestandardowych skryptów lub poleceń

Wszystkie zadania są gromadzone w ścieżce \WSLDashboard\UserTasks\ Harmonogramu zadań Windows dla scentralizowanego przeglądania i zarządzania. Możesz na bieżąco sprawdzać status zadania (Gotowe / Uruchomione / Wyłączone) w interfejsie.

Repozytorium skryptów społecznościowych

Możesz pobrać przykładowe skrypty (kopie zapasowe dystrybucji) z repozytorium społecznościowego, aby szybko rozpocząć:

https://github.com/owu/wsl-community

To repozytorium kodu tworzone wspólnie przez użytkowników. Zapraszamy do przesyłania Pull Requestów, aby dodać skrypty lub podzielić się najlepszymi praktykami.

Wykonywanie polecenia

Konfiguracja polecenia

Każde zaplanowane zadanie można skonfigurować z poleceniem do wykonania (skrypt lub plik wykonywalny), z następującymi opcjami:

Element konfiguracjiOpis
Polecenie wykonaniaŚcieżka do skryptu lub pliku wykonywalnego. Obsługuje formaty takie jak .bat, .ps1, .cmd, .exe, .py. Plik można wybrać za pomocą przycisku "Przeglądaj".
Parametry poleceniaOpcjonalne dodatkowe parametry przekazywane do polecenia.
Uprawnienia administratoraPo zaznaczeniu zadanie będzie uruchamiane z najwyższymi uprawnieniami, odpowiednie dla operacji wymagających podniesienia poziomu UAC.

Operacje na zadaniu

Po utworzeniu zadania możesz wykonać następujące operacje:

OperacjaOpis
Uruchom natychmiastWymusza natychmiastowe uruchomienie zadania, niezależnie od reguł harmonogramu.
Włącz/wyłączWstrzymuje lub wznawia automatyczne planowanie zadania.
UsuńUsuwa zadanie z Harmonogramu zadań.

Reguły harmonogramu

Wyrażenie Cron

Planowanie zadań używa standardowego 5-polowego wyrażenia Cron do definiowania reguł wykonania, w następującym formacie:

minuta godzina dzień miesiąc dzień_tygodnia
PoleZakres wartościOpis
minuta0 - 59Która minuta godziny ma wykonać
godzina0 - 23Która godzina dnia ma wykonać
dzień1 - 31Który dzień miesiąca ma wykonać
miesiąc1 - 12Który miesiąc roku ma wykonać
dzień_tygodnia0 - 70 i 7 oznaczają niedzielę

Każde pole obsługuje następującą składnię:

  • * —— dopasowuje wszystkie wartości (np. * * * * * oznacza wykonanie co minutę)
  • */N —— wykonuje co N jednostek (np. */5 * * * * oznacza wykonanie co 5 minut)
  • Pojedyncza liczba —— dopasowuje konkretną wartość (np. 0 9 * * 1 oznacza wykonanie w każdy poniedziałek o 9:00)

Uwaga: Wartości rozdzielone przecinkami (np. 1,15) oraz wyrażenia zakresu (np. 1-5) nie są obsługiwane. Dodatkowe ograniczenia znajdują się w sekcji Uwagi.

Obsługiwane wzorce kombinacji

To oprogramowanie nie uruchamia natywnego demona Cron, lecz tłumaczy wyrażenia Cron na parametry wyzwalacza Harmonogramu zadań Windows (schtasks.exe). W celu dokładnego odwzorowania parser obsługuje tylko następujące 7 wzorców kombinacji na stałe zapisanych w kodzie, które pokrywają zdecydowaną większość scenariuszy zadań okresowych:

#WzorzecOpisScenariusze użycia
1* * * * *Wykonanie co minutęMonitorowanie, zadania wykrywające w czasie rzeczywistym
2*/N * * * *Wykonanie co N minutOkresowe zadania kontrolne
3M * * * *Wykonanie w M-tej minucie każdej godziny (np. 3 * * * *)Zadania o pełnej godzinie
4M H * * *Codzienne wykonanie o H:M (np. 0 3 * * *)Codzienna konserwacja, np. czyszczenie logów nad ranem
5M H * * DOWWykonanie w określony dzień tygodnia o H:M (np. 0 12 * * 1)Zadania cotygodniowe, np. kopie zapasowe w każdy poniedziałek
6M H D * *Wykonanie w określony dzień miesiąca o H:MZadania comiesięczne, np. generowanie raportu 1. dnia
7M H D MON *Wykonanie w określony miesiąc i dzień roku o H:MZadania coroczne, np. wykonanie w określonym miesiącu

Jeśli wyrażenie nie należy do żadnego z powyższych 7 wzorców, system uzna je za Unsupported cron pattern i odrzuci tworzenie.

Uwagi

Ponieważ implementacja opiera się na Harmonogramie zadań Windows, parser Cron tego oprogramowania różni się od standardowego Crona Linux w następujących aspektach:

1. Listy (,) i zakresy (-) nie są obsługiwane

Standardowy Cron pozwala na definiowanie wielu dyskretnych punktów czasu za pomocą przecinków (np. 1,15,30 * * * * oznacza minuty 1, 15 i 30) lub zakresów za pomocą łącznika (np. 1-5 * * * * oznacza minuty od 1 do 5).

Ograniczenie tego oprogramowania: Każde pole może zawierać tylko pojedynczą liczbę, gwiazdkę (*) lub krok (*/N). Przecinki i łączniki nie są obsługiwane.

2. Dowolne kombinacje nie są obsługiwane

Standardowy Cron pozwala na dowolne kombinacje pól (np. * 3 * * * oznacza co minutę od 3:00 do 3:59), ale to oprogramowanie obsługuje tylko 7 stałych wzorców wymienionych powyżej. Wyrażenia spoza tych wzorców zostaną odrzucone.

3. Różnica w wyrównaniu czasowym wzorców krokowych

W standardowym Cronie */5 * * * * jest ściśle wyrównany do minut zegara 0, 5, 10, 15.... To oprogramowanie tłumaczy to na parametr Windows /SC MINUTE /MO 5. Windows oblicza interwał od momentu utworzenia lub włączenia zadania.

Na przykład, jeśli zapiszesz i włączysz zadanie uruchamiane co 5 minut o 10:02, zostanie ono wykonane po raz pierwszy o 10:07, następnie o 10:12, zamiast być wyrównane do 10:05 standardowego zegara.