locked
WindowsServer2008R2でパフォーマンスモニタログを、最大30日間保存し、7日間でログファイルのローテーションを行う方法について RRS feed

  • 質問

  • 7日間隔でログファイルのローテーションを行う場合は「制限に達したらデータコレクターセットを再開する」にチェックを入れ

    「期間」に「7日間」を指定すればよいかと思います。

    30日経過後に、古いログファイルから自動で削除してくれる機能は無いでしょうか?

    ※毎日夜間にリブート運用を行うサーバの為、タスクスケジューラにてログ取得を再開するよう設定を実施しております。

    ご教授の程、よろしくお願いします。
    • 移動 星 睦美 2012年8月20日 4:26 適切なカテゴリ (移動元:Windows Server 2008 全般)
    • 移動 Yuanli Guo 郭远丽 2012年10月2日 8:56 merge (移動元:Windows Server 2008 R2 全般)
    2012年8月1日 8:50

回答

  • 自動でログファイルを削除してくれる機能というものは無いと思います。
    要件を満たすバッチファイルを作成してタスクスケジュールすれば出来ますね。

    あと、タスクスケジューラで作成したタスクをデータコレクターセットの動作に合わせて実行させることなら可能です。

    1. 30日以上経過したログファイルを削除するバッチファイルを作成する。
    2. そのバッチを実行させるタスクをタスクスケジューラに作成する。
    3. パフォーマンスログを取得するデータコレクターセットのプロパティの[タスク]タブを開く。
    4. [データコレクターセットの停止時にこのタスクを実行]のところに、2.で作成したタスクを入力する。

    これでできると思います。

    まあ、今回の場合は毎日サーバーをリブートするタスクが既にあるようなので、
    あえてデータコレクターセットでタスクを実行しなくても
    リブートするタスクの中にログファイルを削除する処理を入れるなどしておけばいいと思いますが。
    (もちろん、別のタスクを作成してスケジュール実行しても OK ですし)

    • 回答としてマーク 星 睦美 2012年8月20日 4:25
    2012年8月1日 13:25

すべての返信

  • 自動でログファイルを削除してくれる機能というものは無いと思います。
    要件を満たすバッチファイルを作成してタスクスケジュールすれば出来ますね。

    あと、タスクスケジューラで作成したタスクをデータコレクターセットの動作に合わせて実行させることなら可能です。

    1. 30日以上経過したログファイルを削除するバッチファイルを作成する。
    2. そのバッチを実行させるタスクをタスクスケジューラに作成する。
    3. パフォーマンスログを取得するデータコレクターセットのプロパティの[タスク]タブを開く。
    4. [データコレクターセットの停止時にこのタスクを実行]のところに、2.で作成したタスクを入力する。

    これでできると思います。

    まあ、今回の場合は毎日サーバーをリブートするタスクが既にあるようなので、
    あえてデータコレクターセットでタスクを実行しなくても
    リブートするタスクの中にログファイルを削除する処理を入れるなどしておけばいいと思いますが。
    (もちろん、別のタスクを作成してスケジュール実行しても OK ですし)

    • 回答としてマーク 星 睦美 2012年8月20日 4:25
    2012年8月1日 13:25
  • yottun8さん

    やはり標準オプションでそのような機能はないのですね・・・

    ログファイル削除について調べてみると、

    for /f "skip=30 delims=" %%A in ('dir /b /o-n') do rmdir /s /q "%%A"

    で30世代分のデータを保持しておく事ができそうなので、このコマンドを利用してみたいと思います。

    ご返答ありがとうございました。

    2012年8月2日 9:17