お疲れ様です。
今回は、AWSコマンドを使用した PowerShell スクリプトを Windows server 上でタスクスケジューラに設定する方法を紹介します。
タスクスケジューラ
タスク スケジューラ サービスを使用すると、選択したコンピューターで自動タスクを実行できます。 このサービスを使用すると、都合の良いタイミングで、または特定のイベントが発生したときに、任意のプログラムを実行するようにスケジュールできます。 タスク スケジューラは、選択した時間またはイベントの条件を監視し、それらの条件が満たされたときにタスクを実行します。
PowerShell スクリプトをタスクスケジューラで設定する準備
以前の記事で紹介した、AWS コマンドを使用する PowerShell スクリプトを設定する想定なので、以下の手順で準備をします。
◆ CloudWatch LogsのログをS3にエクスポートするPowerShellスクリプト
https://cloud5.jp/mk-cloudwatch-logs-s3-powershell-script/
①AWS プロファイルの作成
PowerShell スクリプトが AWS コマンドを使用する場合、AWS プロファイルの作成が必要です。以下のコマンドを実行して AWS プロファイルを作成します。
aws configure --profile プロファイル名
②イベントログの出力ソースの作成
タスクスケジューラーから実行された際にログを出力するために、イベントログに出力するソースを作成する必要があります。以下のコマンドを使用してイベントログの出力ソースを作成します。
New-EventLog -LogName Application -Source ソース名
※ ソース名 : イベントログ内で出力されたイベントがどのアプリケーションやスクリプトによって生成されたものかを識別するために任意で設定できます。
1. タスクスケジューラの開き方
タスクスケジューラを開く方法は、一般的に2つあります。
①スタートメニューから「管理ツール」を選択し、「タスクスケジューラ」をクリックします。
②コマンドプロンプトまたは PowerShell を開き、taskschd.msc と入力してエンターキーを押します。
・タスクスケジューラ画面
2. 新しいタスクの作成
タスクスケジューラーで新しいタスクを作成します。
①「タスクの作成」をクリックし、タスクの名前と説明を入力します。
↓
②「トリガー」タブでタスクを実行するスケジュールを設定します。
「新規」をクリックして、新しいトリガーを追加します。
トリガーの種類を選択し、タスクの実行頻度やタイミングを設定します
3. アクションの設定
タスクのアクションとして、PowerShell スクリプトを実行するように設定します。
①「操作」タブを選択し、「新規」をクリックして、新しいアクションを追加します。
②プログラムまたはスクリプトのフィールドには、PowerShell スクリプトを実行するためのパスを指定します。
③スクリプトに引数を追加する場合は、「引数の追加」に必要な値を入力してください。
CloudWatch Logs から s3 にログをエクスポートするスクリプトの場合は、以下のようになります。
.\スクリプト名.ps1 "ロググループ名" "S3バケット名"
4. オプションの設定
必要に応じて、「条件」、「設定」タブで、タスクの実行条件や権限を設定します。
これには、ユーザーのログオン状態、ネットワーク接続の種類などが含まれます。
↓
5. イベントログへの出力の設定
PowerShell スクリプトが実行された際にイベントログに出力する場合は、スクリプト内に適切なコマンドを追加します。
例えば、Write-EventLog コマンドを使用して出力できます。
スクリプト開始メッセージをイベントログに出力するコマンドの例
Write-EventLog -LogName Application -Source "LogExptScriptPS" -EntryType Information -EventId 300 -Message "<exportlogs.ps1>:<$log_group>:<$s3>:INFO: Start."
これにより、スクリプトの実行状況やエラーがイベントログに記録され、問題のトラブルシューティングが容易になります。
まとめ
タスクスケジューラを使用して PowerShell スクリプトを設定することで、定期的なタスクや特定の条件下での自動実行を簡単に行うことができます。
タスクスケジューラ を使用すれば、AWS コマンドを使ったスクリプトの設定で、タスク管理をスムーズに行えます。
関連記事
◆ CloudWatch LogsのログをS3にエクスポートするPowerShellスクリプト
https://cloud5.jp/mk-cloudwatch-logs-s3-powershell-script/