Я пытаюсь автоматизировать проверку файлов журналов нашей ежедневной партии.
Я хочу проверить около 20 серверов, которые могут иметь до 30 пакетов, каждый пакет может генерировать один или несколько файлов журналов, и я хочу проверить их по нескольким критериям.
Таким образом, в итоге получается довольно большой объем данных.
Сначала я использовал вложенные массивы и хеш-таблицы, а затем создал 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 (мне не знакомо), использовать внешнюю базу данных, другой метод?