Skip to content

Огляд функції Task Scheduler

Task Scheduler (Планувальник завдань) використовується для автоматизації періодичних завдань у WSL, уникаючи повторюваних ручних операцій з обслуговування. Він надає візуальний інтерфейс керування, який дозволяє створювати та керувати запланованими завданнями без необхідності запам'ятовувати складні параметри командного рядка.

Приклади сценаріїв використання:

  • Регулярне резервне копіювання дистрибутивів у WSL
  • Виконання власних скриптів або команд

Усі завдання збираються в шляху \WSLDashboard\UserTasks\ Планувальника завдань Windows для централізованого перегляду та керування. Ви можете в реальному часі бачити статус завдання (Готово / Виконується / Вимкнено) в інтерфейсі.

Репозиторій скриптів спільноти

Ви можете завантажити приклади скриптів (резервне копіювання дистрибутивів) із репозиторію спільноти нижче, щоб швидко розпочати:

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

Це репозиторій коду, який спільно створюється користувачами. Запрошуємо вас надсилати Pull Request для додавання скриптів або обміну найкращими практиками.

Виконання команди

Конфігурація команди

Для кожного запланованого завдання можна налаштувати команду (скрипт або виконуваний файл) з наступними параметрами:

Параметр конфігураціїОпис
Команда виконанняШлях до скрипта або виконуваного файлу. Підтримуються формати .bat, .ps1, .cmd, .exe, .py та інші. Файл можна вибрати через кнопку "Огляд".
Параметри командиДодаткові параметри, що передаються команді (необов'язково).
Права адміністратораПри позначці завдання виконуватиметься з найвищими правами, підходить для операцій, що потребують підвищення UAC.

Операції із завданням

Після створення завдання ви можете виконувати такі операції:

ОпераціяОпис
Запустити негайноПримусово запустити завдання негайно, незалежно від правил розкладу.
Увімкнути/вимкнутиПризупинити або відновити автоматичне планування завдання.
ВидалитиВидалити завдання з Планувальника завдань.

Правила планування

Cron-вираз

Планування завдань використовує стандартний 5-пільний Cron-вираз для визначення правил виконання у наступному форматі:

хвилина година день місяць тиждень
ПолеДіапазон значеньОпис
хвилина0 - 59Якої хвилини кожної години виконувати
година0 - 23Якої години кожного дня виконувати
день1 - 31Якого дня кожного місяця виконувати
місяць1 - 12Якого місяця кожного року виконувати
тиждень0 - 70 і 7 позначають неділю

Кожне поле підтримує наступний синтаксис:

  • * —— відповідає всім значенням (наприклад, * * * * * означає виконання щохвилини)
  • */N —— виконання через кожні N одиниць (наприклад, */5 * * * * означає виконання кожні 5 хвилин)
  • Одиничне число —— відповідає конкретному значенню (наприклад, 0 9 * * 1 означає виконання щопонеділка о 9:00)

Примітка: Значення, розділені комами (наприклад, 1,15), та вирази діапазону (наприклад, 1-5) не підтримуються. Додаткові обмеження див. у розділі Застереження нижче.

Підтримувані комбіновані шаблони

Це програмне забезпечення не запускає рідний демон Cron, а перекладає Cron-вирази у параметри тригерів Планувальника завдань Windows (schtasks.exe). Для точної відповідності парсер підтримує лише 7 комбінованих шаблонів, які охоплюють більшість сценаріїв запланованих завдань:

#ШаблонОписСценарій використання
1* * * * *Виконання щохвилиниЗавдання моніторингу та виявлення в реальному часі
2*/N * * * *Виконання кожні N хвилинЗавдання періодичної перевірки
3M * * * *Виконання на M-й хвилині кожної години (напр. 3 * * * *)Завдання на початку години
4M H * * *Виконання щодня о H:M (напр. 0 3 * * *)Щоденне обслуговування, наприклад очищення журналів щоранку
5M H * * DOWВиконання у визначений день тижня о H:M (напр. 0 12 * * 1)Щотижневі завдання, наприклад резервне копіювання щопонеділка
6M H D * *Виконання у визначений день місяця о H:MЩомісячні завдання, наприклад створення звіту 1-го числа
7M H D MON *Виконання у визначений місяць і день року о H:MЩорічні завдання, наприклад у визначеному місяці

Якщо вираз не належить до жодного з 7 шаблонів вище, система вважатиме його Unsupported cron pattern і відмовить у створенні.

Застереження

Оскільки реалізація базується на Планувальнику завдань Windows, парсер Cron цього програмного забезпечення має такі відмінності від стандартного Linux Cron:

1. Не підтримує списки (,) та діапазони (-)

Стандартний Cron дозволяє використовувати кому для визначення кількох дискретних моментів часу (наприклад, 1,15,30 * * * * означає 1, 15, 30 хвилини), або дефіс для визначення діапазону (наприклад, 1-5 * * * * означає з 1 по 5 хвилину).

Обмеження цього програмного забезпечення: Кожне поле може містити лише одиничне число, зірочку (*) або крок (*/N), коми та дефіси не підтримуються.

2. Не підтримує вільну комбінацію

Стандартний Cron дозволяє довільну комбінацію полів (наприклад, * 3 * * * означає кожну хвилину протягом 3 години ночі), але це програмне забезпечення підтримує лише 7 фіксованих шаблонів, перелічених вище. Вирази, що не входять у цей діапазон, будуть відхилені.

3. Відмінність вирівнювання часу в кроковому режимі

У стандартному Cron, */5 * * * * суворо вирівнюється до хвилин 0, 5, 10, 15... години. Це програмне забезпечення перекладає це в параметр /SC MINUTE /MO 5 Windows, де логіка обробки Windows полягає в обчисленні інтервалу з моменту створення або активації завдання.

Наприклад, якщо ви зберегли та активували завдання, яке виконується кожні 5 хвилин, о 10:02, воно вперше виконається о 10:07, потім о 10:12, а не вирівняється до стандартного 10:05.