110 lines
3.1 KiB
PowerShell
110 lines
3.1 KiB
PowerShell
|
|
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 ####################" |