日本語
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 分ごとに 1 回実行 | 周期的なチェックタスク |
| 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 ではありません。