한국어
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은 모두 일요일을 나타냄 |
각 필드는 다음 구문을 지원합니다:
* —— 모든 값 일치 (예: * * * * *는 1분마다 실행)*/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시의 매분을 의미), 본 소프트웨어는 위에 나열된 7가지 고정 패턴만 지원하며, 이 범위를 벗어나는 표현식은 거부됩니다.
표준 Cron에서 */5 * * * *는 시계의 0, 5, 10, 15... 분에 엄격하게 정렬됩니다. 본 소프트웨어는 이를 Windows의 /SC MINUTE /MO 5 매개변수로 변환합니다. Windows의 처리 로직은 작업이 생성되거나 활성화된 순간부터 간격을 계산합니다.
예를 들어, 10:02에 5분마다 실행되는 작업을 저장하고 활성화하면, 첫 번째 실행은 10:07에 이루어지고 그 다음은 10:12에 이루어집니다. 표준 시계의 10:05에 정렬되지 않습니다.