Automatizar el Backup en SharePoint 2013

Uno de los grandes problemas con los que nos enfrentamos los departamentos de IT, es cómo automatizar el Backup de SharePoint. Si accedemos al site de administración de SharePoint, veremos que tenemos distintas opciones para hacer el Backup y Restore de la granja de SharePoint.

Backup y Restore de una granja de SharePoint
Backup y Restore de una granja de SharePoint

De hecho, podemos hacer un backup y seleccionar toda la granja. Seleccionamos la carpeta compartida donde queremos dejar el backup y listo. Ya tenemos backup.

Opciones del Backup de SharePoint
Opciones del Backup de SharePoint

El problema de realizar así el Backup, es que hay que hacerlo «a mano». Desde la interfaz gráfica no tenemos ninguna opción de automatizar dicha tarea. Podemos usar PowerShell con el comando Backup-SPFarm y automatizar una tarea en Windows para que haga un backup semanal. En este enlace se explica paso a paso, cómo crear estas tareas en Windows y cómo automatizar el backup full (semanal) y el diferencia (diario).

http://blogs.technet.com/b/meamcs/archive/2013/02/23/sharepoint-2013-backup-with-powershell-and-task-scheduler-for-beginners.aspx

El problema que tiene esta automatización, es que sino borro Backups antiguos, el backup va creciendo y creciendo… y sino borramos los antiguos, la carpeta compartida crecerá indeterminadamente. Para solucionarlo, debemos aplicar una política de retención. Por ejemplo, tener como máximo 2 ó 3 backups y que cuando hago un backup, elimine el último de los 3 que quedan. De esta forma voy teniendo backups más recientes, y voy borrando los backups más antiguos. Pero ¿y cómo hacemos esto?

Microsoft propone utilizar Visual Basic Script, pero a mi me parece un sistema antiguo y arcaico.

https://technet.microsoft.com/en-us/library/cc967308(office.12).aspx

En cambio, existe una magnífica solución en codeplex, que nos da solución a todos estos problemas. SharePoint Backup Augmentation Cmdlets es un proyecto gratuito y maravilloso, que lo que hace es añadirnos varios comandos nuevos de PowerShell (cmdlets), con la capacidad de automatizar una política de retención de backups de sharepoint. En concreto agrega los siguientes cmdlets: Remove-SPBackupCatalogExport-SPBackupCatalogGet-SPBackupCatalogSend-SPBackupStatus.

 

   SharePoint Backup Augmentation Cmdlets

SharePoint Backup Augmentation Cmdlets

En concreto, con el comando Remove-SPBackupCatalog, indicamos qué política de retención queremos configurar y cuántos backups hay que mantener. Dicho comando se encarga de actualizar el fichero de backup de sharepoint spbrtoc.xml y borrar los backups antiguos. Además el comando Send-SPBackupStatus, nos permite enviar un correo una vez finalizado el backup.

Desde la propia página de documentación, podemos acceder a un script de ejemplo donde lo tenemos todo: automatización del backup, política de retención y borrado de backups antiguos y envío de correos de estado del backup.

 

Add-PSSnapin Microsoft.SharePoint.PowerShell
$cat = Get-SPBackupCatalog \\backupserver\SharePointBackup
Backup-SPFarm -Directory \\backupserver\SharePointBackup -BackupMethod Full
$cat.Refresh()
$cat | Remove-SPBackupCatalog -RetainCount 2 -Confirm:$false
$cat.Refresh()
$cat | Send-SPBackupStatus -Recipients "admin@example.com,backupop@example.com"
Automatizar el Backup en SharePoint 2013