Мониторинг сетевых бекапов на Powershell

Для контроля над созданием сетевых архивов полезно использовать инструменты автоматизации, особенно если мест, куда они копируются по сети ежедневно — много. Этот скрипт посмотрит в сетевых папках, везде ли созданы архивы за последние 20 часов. И если не везде — маякнёт через pushbullet.

Качайте исходники отсюда . Основная часть — ниже:

$dirs = @{}
$dirs.Add(‘srv1’,@(«\net1\folder1»
))
$dirs.Add(‘srv2’,@(«\net2\folder2″,»\net2\folder3»))

$ext = @{}

$summary = ‘CHECK PASSED’
$push = 0;
$now = Get-Date
foreach ($serv in $dirs.keys) {
foreach ($dir in $dirs[$serv]) {
Echo «$serv check»
$filter = ‘bak’
if ($ext.contains($serv)) { $filter = $ext[$serv]}
if ( [bool](Get-ChildItem -Filter «*.$filter» $dir |
Where-Object { $_.LastWriteTime -gt $now.AddHours(-20) })
) { Echo » $dir fine» } else { Echo » $dir OLD !»; $summary = ‘CHECK NOT PASSED’; $push = 1; };
#Out-File ‘i:\bkSeeker\checker.txt’
}
}
echo $summary
if ($push -eq 1) { & .\powerpush.ps1 bkSeek $summary ; }