我試圖自動化日常批處理的日誌文件驗證。在PowerShell中處理大量嵌套數據的最佳方法?
我想檢查20個可能有30個批次的服務器,每個批次可以生成一個或多個日誌文件,我想用幾個標準來驗證它們。
因此,這將以相當大量的數據結束。
我的第一個,雖然是使用嵌套的數組和哈希表然後創建psobject這樣的:
[email protected](
@{
"name"="server1";
"credential"="domain\user";
"batch"[email protected](
@{"batchName"="test";"path"="e:\cit\sauvegarde\batch\recup.cmd";"comment"="batch de test";"schedule"="lundi,mardi ";
"validations"[email protected](
@{"name"="log exist";"path"="\\smacweb\e$\cit\test.log";"filter"[email protected]("NotNull";"NotOlderThan,2") };
@{"name"="no erros";"path"="\\smacweb\CIT\sauvegarde\logs\*.log";"filter"[email protected]("NotContains,'error'") };
)};
@{"batchName"="mysql";"comment"="dump des bases mysql";"schedule"="lundi,mardi,vendredi";
"validations"[email protected](
@{"name"="log exist";"path"="\\smacweb\e$\mysqldump\dump.zip";"filter"[email protected]("NotNull";"NotOlderThan,2") };
@{"name"="zipOK";"path"="\\smacweb\e$\mysqldump\dump.zip";"filter"[email protected]("Test-Zip") };
)};
)
};
# @{
# "name"="server2";
# "credential"="domain\user2";
# "batch"[email protected](
# @{"batchName"=.....};
# )};
)
[email protected]()
$servers | % {
$srv+= New-Object -TypeName psobject -Property $_;
}
這是一個小例子,但我想它會很快變得難以讀取。 那麼更好的方法是什麼呢?使用XML(不熟悉我),使用外部數據庫,其他方法?
XML是propably的最明智的選擇。至少要從PS腳本中分離驗證規則。儘管如此,我對xml不夠熟悉。 –