한국어
Appearance
한국어
Appearance
Task Scheduler(작업 스케줄러)는 WSL에서 정기적인 작업을 자동화하여 반복적인 수동 유지보수 작업을 없애는 기능입니다. 복잡한 명령줄 인수를 외울 필요 없이 시각적인 관리 인터페이스에서 예약 작업을 만들고 관리할 수 있습니다.
이 기능의 예시 시나리오:
모든 작업은 Windows 작업 스케줄러의 \WSLDashboard\UserTasks\ 경로 아래에 모아져 있어 한곳에서 확인하고 관리할 수 있습니다. 인터페이스에서 작업 상태(준비됨 / 실행 중 / 사용 안 함)를 실시간으로 확인할 수 있습니다.
다음 커뮤니티 저장소에서 예시 스크립트(배포판 백업)를 다운로드하여 빠르게 시작할 수 있습니다:
https://github.com/owu/wsl-community
이것은 사용자 공동 구축 코드 저장소입니다. Pull Request를 제출하여 스크립트를 기여하거나 모범 사례를 공유해 주세요.
각 예약 작업에 실행할 명령(스크립트 또는 실행 프로그램)을 구성할 수 있으며, 다음 옵션을 지원합니다:
| 구성 항목 | 설명 |
|---|---|
| 실행 명령 | 실행할 스크립트 또는 실행 프로그램 경로. .bat, .ps1, .cmd, .exe, .py 등의 형식 지원. "찾아보기" 버튼으로 파일을 선택할 수 있습니다. |
| 명령 인수 | 명령에 전달할 추가 인수(선택). |
| 관리자 권한 | 체크하면 작업이 최고 권한으로 실행됩니다. UAC 권한 상승이 필요한 작업에 적합합니다. |
작업을 만든 후 다음 작업을 수행할 수 있습니다:
| 작업 | 설명 |
|---|---|
| 지금 실행 | 예약 규칙과 관계없이 작업을 강제로 즉시 실행합니다. |
| 사용/사용 안 함 | 작업의 자동 예약을 일시 중지하거나 재개합니다. |
| 삭제 | 작업 스케줄러에서 작업을 제거합니다. |
작업 예약은 표준 5개 필드 Cron 표현식으로 실행 규칙을 정의합니다. 형식은 다음과 같습니다:
분 시 일 월 요일| 필드 | 값 범위 | 설명 |
|---|---|---|
| 분 | 0 - 59 | 매시간의 몇 분에 실행 |
| 시 | 0 - 23 | 매일의 몇 시에 실행 |
| 일 | 1 - 31 | 매월의 며칠에 실행 |
| 월 | 1 - 12 | 매년의 몇 월에 실행 |
| 요일 | 0 - 7 | 0과 7은 모두 일요일을 나타냄 |
각 필드는 다음 구문을 지원합니다:
* —— 모든 값과 일치(예: * * * * *는 매분 실행)*/N —— N 단위마다 실행(예: */5 * * * *는 5분마다 실행)0 9 * * 1은 매주 월요일 오전 9:00 실행)주의: 쉼표로 구분된 여러 값(예:
1,15)과 범위 표현식(예:1-5)은 지원되지 않습니다. 더 많은 제한 사항은 아래의 주의 사항을 참조하세요.
이 소프트웨어는 네이티브 Cron 데몬을 실행하지 않고, Cron 표현식을 **Windows 예약 작업(schtasks.exe)**의 트리거 인수로 변환합니다. 정확한 매핑을 위해 파서는 다음 7가지 조합 패턴만 하드코딩으로 지원하며, 대부분의 예약 작업 시나리오를 포괄합니다:
| # | 패턴 | 설명 | 적용 시나리오 |
|---|---|---|---|
| 1 | * * * * * | 매분 실행 | 모니터링, 실시간 감지 작업 |
| 2 | */N * * * * | N분마다 한 번 실행 | 주기적 확인 작업 |
| 3 | M * * * * | 매시간의 M분에 실행(예: 3 * * * *) | 정시 작업 |
| 4 | M H * * * | 매일 H시 M분에 실행(예: 0 3 * * *) | 일상 유지보수, 예: 매일 새벽 로그 정리 |
| 5 | M H * * DOW | 매주 특정 요일의 H시 M분에 실행(예: 0 12 * * 1) | 주간 정기 작업, 예: 매주 월요일 데이터 백업 |
| 6 | M H D * * | 매월 특정 날짜의 H시 M분에 실행 | 월간 작업, 예: 매월 1일 보고서 생성 |
| 7 | M H D MON * | 매년 특정 월과 날짜의 H시 M분에 실행 | 연간 작업, 예: 지정된 월에 실행 |
표현식이 위 7가지 패턴에 속하지 않으면 시스템은 이를
Unsupported cron pattern으로 간주하고 생성을 거부합니다.
이 소프트웨어는 Windows 예약 작업 기반으로 구현되었으므로, Cron 파서는 표준 Linux Cron과 다음과 같은 차이가 있습니다:
,) 및 범위(-) 미지원 표준 Cron은 쉼표로 여러 개의 분리된 시점(예: 1,15,30 * * * *는 1, 15, 30분을 나타냄)을 정의하거나, 하이픈으로 범위(예: 1-5 * * * *는 1~5분을 나타냄)를 정의할 수 있습니다.
이 소프트웨어의 제한: 각 필드에는 단일 숫자, 별표(*), 또는 **간격(*/N)**만 입력할 수 있으며, 쉼표와 하이픈은 지원되지 않습니다.
표준 Cron은 임의 필드의 자유로운 조합을 허용하지만(예: * 3 * * *는 매일 새벽 3시라는 1시간 동안의 매분을 나타냄), 이 소프트웨어는 위에 나열된 7가지 고정 패턴만 지원하며, 이 범위를 벗어난 표현식은 거부됩니다.
표준 Cron에서 */5 * * * *는 시계의 0, 5, 10, 15... 분에 엄격하게 정렬됩니다. 이 소프트웨어는 이를 Windows의 /SC MINUTE /MO 5 인수로 변환하며, Windows의 처리 로직은 작업 생성 또는 활성화 시점부터 간격을 계산합니다.
예를 들어 10:02에 5분마다 실행되는 작업을 저장하고 활성화하면, 첫 실행은 10:07이고 그다음은 10:12입니다. 표준 시계에 정렬된 10:05가 아닙니다.