Tuesday, July 12, 2011

Retention des sauvegardes Sharepoint

Toujours rien en 2010 pour effacer automatiquement les vieilles sauvegardes après x jours....
Heureusement y'a powershell, à ajouter en tache planifiée après la sauvegarde :

# purge de la toc sharepoint 200x
# Code v1.0 - E.issaly 12/07/2011

param (


[string]$SPSEnv,                                                                    #Ex: Prod, Rect, Dev, Int
[string]$SPSFerme,                                                                   #Ex: RIGA, HANOI
[string]$days                        #Jours de retention
)

if(!$SPSEnv -or !$SPSFerme) {
  write-host "Syntaxe incorecte, 2 parametres attendus: Environnement Ferme [j.Retention], ex 'PROD RIGA 15'" -foregroundcolor red
  exit(1)
}

# Emplacement du catalogue spbrtoc.xml
$SPSShare = "\\sp-sps-share0.cdcam.com\images$\sps"
$spbrtoc = "$SPSShare\$SPSEnv\$SPSFerme\spsback\spbrtoc.xml"

# Retention en jours, 10 défaut
if (!$days) {$days = 10}

# Lecture TOC
[xml]$sp = gc $spbrtoc
# Chercher les backups >= days
$old = $sp.SPBackupRestoreHistory.SPHistoryObject | ? { $_.SPStartTime -lt ((get-date).adddays(-$days)) }
if ($old -eq $Null) { write-host "Pas de vieux backups (>=$days jours) dans spbrtoc.xml.`nAucune Action.`n" ; break}
# Enlever du catalogue
$old | % { $sp.SPBackupRestoreHistory.RemoveChild($_) }
# Enlever du disque
$old | % { Remove-Item $_.SPBackupDirectory -Recurse }
# Sauver la nouvelle TOC
$sp.Save($spbrtoc)
Write-host "Backup(s) plus vieux que $days jours supprimés de spbrtoc.xml et du sous rép."

No comments: