Ajouter Exchange/status-backup.ps1

This commit is contained in:
Hubert Cornet 2023-10-21 18:45:11 +02:00
parent a5e953ceff
commit 8695ba7c97

110
Exchange/status-backup.ps1 Normal file
View File

@ -0,0 +1,110 @@
param($action) # paramètre à scpécifier lors de l'appel
$Run_Path=Split-Path -parent $MyInvocation.MyCommand.Definition
$ErrorActionPreference = "Stop"
$resultlog="$Run_Path\Checkbackup.log"
<# Log
------------------------------------------------
Usage : Utilisé pour logger
$data : Informations à logger
$new : A préciser pour démarrer un nouveau log.
#>
Function Log ($data,$new) {
If ($new) {
write-output "$data" | Out-File $resultlog
}
Else {
write-output "$data" | Out-File $resultlog -Append
}
}
Log "################# START ###############" $true
Try {
add-pssnapin Microsoft.Exchange.Management.PowerShell.SnapIn
}
Catch {
}
$global:ErrorCopy=@();$global:ErrorFull=@();$global:ErrorIncr=@()
$listdb=Get-MailboxDatabase -Status | select name, Server, LastFullBackup, LastIncrementalBackup, LastCopyBackup
Foreach ($db in $listdb) {
#Log $db
If(! $db.Name.Contains("Mailbox")) {
Switch ($action) {
"COPY" {
If (! $db.LastCopyBackup) {
$global:ErrorIncr+=$db.Name
}
Else {
If (($(Get-Date) - $db.LastCopyBackup).TotalMinutes -gt 35) {
$global:ErrorCopy+=$db.Name
}
}
}
"FULL" {
If (! $db.LastFullBackup) {
$global:ErrorIncr+=$db.Name
}
Else {
If (($(Get-Date) - $db.LastFullBackup).TotalDays -gt 7) {
$global:ErrorFull+=$db.Name
}
}
}
"INC" {
If (! $db.LastIncrementalBackup) {
If (! $db.LastFullBackup) {
$global:ErrorIncr+=$db.Name
}
Elseif(($(Get-Date) - $db.LastFullBackup).TotalDays -gt 1) {
$global:ErrorIncr+=$db.Name
}
}
Elseif(($(Get-Date) - $db.LastIncrementalBackup).TotalDays -gt 1) {
If (! $db.LastFullBackup)
{
$global:ErrorIncr+=$db.Name
}
Elseif(($(Get-Date) - $db.LastFullBackup).TotalDays -gt 1) {
$global:ErrorIncr+=$db.Name
}
}
}
}
}
}
If ($ErrorCopy.count -gt 0) {
$string="Error on "
$ErrorCopy=$ErrorCopy | sort
Foreach ($dbname in $ErrorCopy) {
$string+=$dbname+","
}
$string+=" during CopyBackup(Appsync)"
Log $string;$string;exit 2
}
If ($ErrorFull.count -gt 0) {
$string="Error on "
$ErrorFull=$ErrorFull | sort
Foreach ($dbname in $ErrorFull) {
$string+=$dbname+","
}
$string+=" during FullBackup(TSM)"
Log $string;$string;exit 2
}
If ($ErrorIncr.count -gt 0) {
$string="Error on "
$ErrorIncr=$ErrorIncr | sort
Foreach ($dbname in $ErrorIncr) {
$string+=$dbname+","
}
$string+=" during IncBackup(TSM)"
Log $string;$string;exit 2
}
Log "################## END ####################"