毎日のバッチのログファイル検証を自動化しようとしています。
最大30のバッチを持つ可能性のある約20のサーバーをチェックしたいのですが、各バッチは1つ以上のログファイルを生成でき、いくつかの基準を使用してそれらを検証したいと思います。
したがって、これは非常に大量のデータになります。
私の最初は、ネストされた配列とハッシュテーブルを使用してから、次のようなpsobjectを作成することでした。
$servers=@(
@{
"name"="server1";
"credential"="domain\user";
"batch"=@(
@{"batchName"="test";"path"="e:\cit\sauvegarde\batch\recup.cmd";"comment"="batch de test";"schedule"="lundi,mardi ";
"validations"=@(
@{"name"="log exist";"path"="\\smacweb\e$\cit\test.log";"filter"=@("NotNull";"NotOlderThan,2") };
@{"name"="no erros";"path"="\\smacweb\CIT\sauvegarde\logs\*.log";"filter"=@("NotContains,'error'") };
)};
@{"batchName"="mysql";"comment"="dump des bases mysql";"schedule"="lundi,mardi,vendredi";
"validations"=@(
@{"name"="log exist";"path"="\\smacweb\e$\mysqldump\dump.zip";"filter"=@("NotNull";"NotOlderThan,2") };
@{"name"="zipOK";"path"="\\smacweb\e$\mysqldump\dump.zip";"filter"=@("Test-Zip") };
)};
)
};
# @{
# "name"="server2";
# "credential"="domain\user2";
# "batch"=@(
# @{"batchName"=.....};
# )};
)
$srv=@()
$servers | % {
$srv+= New-Object -TypeName psobject -Property $_;
}
これは小さな例ですが、すぐに読みにくくなると思います。では、これを行うためのより良い方法は何でしょうか?xml(私にはなじみがない)を使用し、外部データベースを使用しますか、他の方法ですか?