Skip to content

Планувальник завдань ​

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

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

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

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

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

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

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

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

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

Налаштування команди ​

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

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

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

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

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

Правила розкладу ​

Cron-вираз ​

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

Хвилини Години Дні Місяці Дні тижня
ПолеДіапазон значеньОпис
Хвилини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 Scheduled Tasks (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... хвилинами годин. Це ПЗ перетворює його на параметр Windows /SC MINUTE /MO 5, а логіка Windows обчислює інтервал з моменту створення або ввімкнення завдання.

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