WindowsでBashシェルを実行する!その3-タスクスケジューラに登録

前提

・Ubuntu 20.04がインストールされ、ディフォルトユーザにAWS CLI環境が設定済みであること
・Ubuntu 20.04にjqがインストールされていること
・Bashの実行OS:Ubuntu 20.04 On Windows
・Bashを起動する方法:Windows Bat
・WindowsのローカルAdministrator権限でタスクスケジューラに登録

下記の環境設定関連記事を参照:
WindowsでBashシェルを実行する!その1-WSL2にUbuntuをインストール
WindowsでBashシェルを実行する!その2-UbuntuにAWS CLIの環境設定

WindowsバッチファイルでBashを起動する方法

Ubuntu 20.04 On Windowsがインストールされ定る場合、Bash.exeは下記ディレクトリにあります。

C:\Windows\System32\

Bash.exeの場所が特定できれば、Bashを起動するバッチファイルを下記のように作成できます。

rem Bashの実行
cmd /c "C:\Windows\System32\bash.exe" --login -i -- /mnt/d/Shell/Get_VPCFlowLogs_OneDayAgo_EveryLogStream.sh

バッチファイルの内容

ファイル名:start_Get_VPCFlowLogs.bat

@echo off

rem Bashの実行
cmd /c "C:\Windows\System32\bash.exe" --login -i -- /mnt/d/Shell/Get_VPCFlowLogs_OneDayAgo_EveryLogStream.sh

rem 終了処理
echo bat_end_code:%errorlevel%

Bashシェルの内容(ファイル名:Get_VPCFlowLogs_OneDayAgo_EveryLogStream.sh)を下記のリンクを参照
nextBackwardTokenを使ってCloudWatch logsのログ(前日のみ)をlocalにdownloadするシェルを作成してみました。

タスクスケジューラに登録して動作確認を行う

タスクスケジューラに登録すると、設定する時間で実行できます。

今回は、VPCFlowLogsを例にシェルを作成して、毎日実行できるようにタスクスケジューラに登録してみました。

タスクスケジューラにBashシェルを起動するBatを登録

1. 画面下部に検索欄に「タスクスケジューラ」を入力すると、タスクスケジューラが表示されて、クリックします。

2. 「タスクスケジューラ」が表示され、「タスクスケジューラライブラリ」を右クリックし、メニューから「新しいフォルダ」をクリックします。フォルダ名にを[BashTest]指定します。

3.[BashTest]を右クリックし、「タスクの作成」をクリックします。

4.「全般」タブの「名前」に「Get_VPCFlowLogs」入力します。
「ユーザーがログオンしているかどうかにかかわらず実行する」を選択し、「最上位の特権で実行する」をチェックします。

5.「トリガー」タブの「新規」ボタンをクリックします。

6.「新しいトリガー」画面で赤枠のように設定し、「OK」をクリックします。

7.「トリガー」タブ画面に下記赤枠のように反映されます。

8.「操作」タブの「新規」ボタンをクリックします。

9.「新しい操作」画面で「参照」ボタンをクリックします。

10.下記の赤枠のように参照ファイルを選択し、「開く」ボタンをクリックします。

11.「新しい操作」画面に赤枠のようにファイルパスが表示され、「OK]ボタンをクリックします。

12.「操作」タブ画面に下記赤枠のように反映されます。

13.「条件」タブ画面に下記赤枠のようにチェックを外します。
□コンピューターをAC電源で使用している場合のみタスクを開始する

14.「設定」タブ画面で何も変更しないで「OK」ボタンをクリックします。

15.下記のうように管理者ユーザのパスワードを入力し、「OK」ボタンをクリックします。

「全般」タブで「最上位の特権で実行する」をチェックしている場合、パスワードが要求されます。

16.登録すると、下記のように登録されます。

タスクスケジューラで実行されることを確認

タスクが指定時間が実行されます。

18:30に実行され、18:32にログが出力されいることを確認できました。

参考

タスクスケジューラ「最上位の特権で実行する」設定 管理者ユーザーと一般ユーザーの権限の違い

【Windows/タスクスケジューラ】バッチを実行する際の3つの注意点

Last modified: 2021-12-11

Author