Skip to content

Task Scheduler 기능 소개 ​

Task Scheduler(작업 스케줄러)는 WSL에서 정기적인 작업을 자동화하여 반복적인 수동 유지 관리 작업을 방지합니다. 복잡한 명령줄 매개변수를 기억할 필요 없이 시각적인 관리 인터페이스를 제공하여 예약된 작업을 생성하고 관리할 수 있습니다.

이 기능의 예시 시나리오:

  • WSL 배포판 정기 백업
  • 사용자 정의 스크립트 또는 명령 실행

모든 작업은 Windows 작업 스케줄러의 \WSLDashboard\UserTasks\ 경로에 통합되어 중앙에서 쉽게 확인하고 관리할 수 있습니다. 인터페이스에서 작업 상태(준비 / 실행 중 / 비활성화됨)를 실시간으로 확인할 수 있습니다.

커뮤니티 스크립트 저장소 ​

아래 커뮤니티 저장소에서 예제 스크립트(배포판 백업)를 다운로드하여 빠르게 시작할 수 있습니다:

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은 모두 일요일을 나타냄

각 필드는 다음 구문을 지원합니다:

  • * —— 모든 값 일치 (예: * * * * *는 1분마다 실행)
  • */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... 분에 엄격하게 정렬됩니다. 본 소프트웨어는 이를 Windows의 /SC MINUTE /MO 5 매개변수로 변환합니다. Windows의 처리 로직은 작업이 생성되거나 활성화된 순간부터 간격을 계산합니다.

예를 들어, 10:02에 5분마다 실행되는 작업을 저장하고 활성화하면, 첫 번째 실행은 10:07에 이루어지고 그 다음은 10:12에 이루어집니다. 표준 시계의 10:05에 정렬되지 않습니다.