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 Task Scheduler (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 Task Scheduler, парсер Cron данного программного обеспечения имеет следующие отличия от стандартного Linux Cron:

1. Списки (,) и диапазоны (-) не поддерживаются

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

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

2. Свободные комбинации не поддерживаются

Стандартный Cron допускает произвольные комбинации полей (например, * 3 * * * означает каждую минуту с 3:00 до 3:59), но данное ПО поддерживает только 7 фиксированных шаблонов, перечисленных выше. Выражения, не входящие в эти шаблоны, будут отклонены.

3. Разница в синхронизации шаговых шаблонов

В стандартном Cron */5 * * * * строго синхронизируется с минутами 0, 5, 10, 15... часов. Данное ПО преобразует его в параметр Windows /SC MINUTE /MO 5. Windows вычисляет интервал с момента создания или включения задачи.

Например, если вы сохранили и включили задачу, выполняющуюся каждые 5 минут, в 10:02, она выполнится впервые в 10:07, затем в 10:12, а не синхронизированно с 10:05.