Skip to content

작업 스케줄러 ​

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

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

  • * —— 모든 값과 일치(예: * * * * *는 매분 실행)
  • */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시라는 1시간 동안의 매분을 나타냄), 이 소프트웨어는 위에 나열된 7가지 고정 패턴만 지원하며, 이 범위를 벗어난 표현식은 거부됩니다.

3. 간격 패턴의 시간 정렬 차이 ​

표준 Cron에서 */5 * * * *는 시계의 0, 5, 10, 15... 분에 엄격하게 정렬됩니다. 이 소프트웨어는 이를 Windows의 /SC MINUTE /MO 5 인수로 변환하며, Windows의 처리 로직은 작업 생성 또는 활성화 시점부터 간격을 계산합니다.

예를 들어 10:02에 5분마다 실행되는 작업을 저장하고 활성화하면, 첫 실행은 10:07이고 그다음은 10:12입니다. 표준 시계에 정렬된 10:05가 아닙니다.