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.