Si bien los backups con rsync en el mundo linux están a la orden del día y son un estándar de facto, cuando se administran sistemas basados en Windows se echan mucho de menos.
¿Cómo realizo backups en Microsoft Windows? ¿Cómo puedo sincronizar un backup?
En esta entrada veremos cómo realizar backup de una estructura de archivos y carpetas, no backups de sistema.
Robocopy
No veremos las formas de utilizar rsync en Windows, en su lugar veremos la herramienta nativa que Microsoft ofrece para estas tareas: Robocopy.
Objetivo
En esta entrada veremos cómo sincronizar dos carpetas, de tal manera que, cada vez que ejecutemos nuestro comando, el origen se comparará con el destino y solo se copiarán los archivos que son nuevos o modificados y eliminará los que ya no estén en el origen. En definitiva, veremos cómo sincronizar el backup con el directorio origen.
Ejemplos de backup
Veremos dos ejemplos típicos para realizar backups con robocopy:
- Backup local
- Backup remoto
Podéis revisar qué significa cada una de las opciones de robocopy al final del artículo en «Opciones robocopy».
Backup local
En este caso vamos a sincronizar dos carpetas locales en el mismo servidor.
Vamos a salvar el contenido de «F:\ImportantFolder» (archivos y directorios) en «E:\Backup» y dejará un log «Backup.log» en la unidad E:\.
Para ello, abre una consola de comandos y ejecuta:
robocopy F:\ImportantFolder E:\Backup *.* /e /sec /PURGE /Xd "System Volume Information" "$RECYCLE.BIN" /LOG:E:\Backup.log /Xo
Al terminar veremos el log con la información de la copia.
Backup remoto
El ejemplo es idéntico al anterior, salvo que en este caso el directorio «ImportantFolder» se encuentra en la unidad F: del servidor «servername».
robocopy \\servername\F$\ImportantFolder E:\Backup *.* /e /sec /PURGE /Xd "System Volume Information" "$RECYCLE.BIN" /LOG:E:\Backup.log /Xo
Asegúrate de tener los permisos necesarios para realizar esta copia.
Opciones robocopy
Repasamos los flags y opciones utilizadas en nuestros ejemplos de robocopy:
- /e: Copia subdirectorios, incluyendo los vacíos.
- /sec: Copia los archivos con SECurity (equivalente a /COPY:DATS).
- /PURGE: Borra los archivos de destino y directorios que no existen en la ruta de origen.
- /Xd: No sincroniza los nombres/rutas dados.
- /Xo: No copia de nuevo los archivos que ya están en nuestro backup (incremental).
Para más información puedes revisar la salida de ayuda.
robocopy /?