システム運用や開発現場では、ログ収集やバックアップ作業を「手動で行う」ケースがまだ多く残っています。しかし、PowerShellを使えばこれらを自動化し、毎日の定型作業を一気に効率化できます。
この記事では、**「ログを自動収集してバックアップするPowerShellスクリプト」**を実例付きで紹介します。
スクリプトはWindows環境でそのまま動作し、日次・週次の定期ジョブとしても活用可能です。
⚙️ 実践スクリプト:ログ収集&バックアップ自動化
以下のスクリプトは、
-
ログフォルダをスキャン
-
日付別フォルダにコピー
-
古いバックアップを自動削除
する一連の処理を行います。
📦 処理の流れ
| 処理 | 内容 |
|---|---|
| ① 初期設定 | ログフォルダ・バックアップフォルダ・保持日数を設定 |
| ② 日付フォルダ作成 | yyyyMMdd形式で新しいバックアップフォルダを作成 |
| ③ ログコピー | 対象フォルダからすべての.logファイルをコピー |
| ④ 古いフォルダ削除 | 30日より古いフォルダを自動削除 |
🕒 定期実行する方法(Windows タスクスケジューラ)
-
Windows検索バーで「タスクスケジューラ」と入力して起動
-
「基本タスクの作成」→ タスク名を「ログバックアップ」とする
-
「毎日」または「毎週」を選択
-
「操作」で「プログラムの開始」を選択し、以下を指定
-
完了後、右クリック → 「プロパティ」 → 「最上位の特権で実行する」を有効にする
💡 応用ポイント
-
ZIP圧縮も追加可能:
Compress-Archiveを使ってバックアップサイズを削減 -
ログローテーション:ファイルサイズや日付で自動的にローテーションするよう拡張可能
-
メール通知:バックアップ完了後に
Send-MailMessageで報告を送信可能 -
CSVやJSON対応:ログ形式が異なる場合も
Get-Content+ConvertFrom-Jsonなどで加工可能
🚀 まとめ
PowerShellを使えば、GUI操作では面倒なログバックアップを簡潔に自動化できます。
1日1回の定期タスクに登録するだけで、手動の手間を大幅削減。
運用の安定化にもつながります。
ポイント:小さなスクリプトでも「業務時間を削減」できるのがPowerShellの強みです。
