Windows dentro de su sabiduría de repente decide instalar una actualización en el mejor momento posible, tu ordenador se reinicia de golpe y, al volver, ese documento crucial ha volado!
En Windows a menudo se vive con una falsa sensación de seguridad ya que la gente se confía en que la nube lo sincroniza todo o que un simple "copiar y pegar" de vez en cuando en un pendrive es suficiente. Ya dijimos en el post anterior que hacer backups de forma manual es aburrido, ineficiente y siempre se nos olvida por lo que sea.
Hoy vamos a trabajar eso y prometo que no llevará más de 10 min. ni vamos a usar programas pesados de terceros que te llenan el ordenador de ******!!
El arma secreta de los administradores de sistemas: Robocopy
Muchos usuarios de Windows recurren a scripts básicos con comandos como xcopy o Copy-Item de PowerShell (yo era uno de ellos). El problema es que vuelven a copiar absolutamente todo cada vez que los ejecutas. Si tienes 50 GB de copia entre fotos, apuntes o yo que sé, tu backup tardará media hora en completarse todos los días, desgastando además tu disco duro de forma innecesaria.Esto lo solucionamos esto con Robocopy (Robust File Copy). Además es nativa y funciona por línea de comandos es incremental y extremadamente robusta.
- Compara la carpeta de origen con la de destino (a que os suena de linux?)
- Identifica los archivos nuevos, los cambios y los borrados.
- Transfiere únicamente las modificaciones en segundos.
El Script en PowerShell
Vamos a escribir un script .ps1 que no solo va a usar Robocopy para hacer la copia sino que va a comprobar si el disco de destino está conectado y así además evitamos errores si te has dejado el disco externo en la mochila...
Abre tu editor de código favorito (en mi caso Visual Studio Code) o también puedes usar utilizando el buscador de Windows y escribe PowerShell ISE.
Creamos un archivo nuevo y lo guardamos como backup_windows.ps1 en una carpeta, por ejemplo, en C:\Scripts\Copia y pega el siguiente código, después dejaré una leyenda por si hay algo que no se entiende:
Al principio usar Robocopy puede parecer lioso pero es cuestión de practicar. Los parámetros que he utilizado son:
- /MIR - Crea un espejo exacto del origen en el destino (cuidado, también borra en el destino si se borra en origen!)
- /FFT - Asume marcas de tiempo FAT (importante para evitar fallos si tu usb usa exFAT o FAT32)
- /R:3 - Si un archivo está bloqueado por otro programa, lo reintenta copiar un máximo de 3 veces
- /W:5 - Espera 5 segundos entre reintentos
- /NP - Desactiva el indicador de porcentaje de progreso para no llenar el log
- /LOG+ - Añade los resultados detallados al log sin borrar el historial anterior
Automatización silenciosa con el Programador de Tareas
Ya tenemos el script que hace ahorrarnos tiempo, ahora queremos que Windows lo ejecute de forma invisible, por ejemplo, todos los días a las 22:00.
Para esto de forma pro y evitar que aparezca alguna pantalla azul de la consola mientras estemos jugando o estudiando vamos a hacer lo siguiente:
1) Pulsa la tecla de Windows, escribe Programador de tareas y ábrelo.
2) En el panel derecho hacemos clic en Crear tarea... ("tarea básica" NO! necesitamos configurar opciones avanzadas de ejecución).
3) En la pestaña General:
- Ponle un nombre claro, como Sincronizacion_Backup_Proyectos
- En la parte inferior, marca la casilla Ejecutar con los privilegios más altos (importante para que Robocopy acceda a ciertos metadatos del sistema)
- Selecciona la opción Ejecutar tanto si el usuario inició sesión como si no. Esto obliga a Windows a ejecutar el script en segundo plano de forma totalmente invisible.
4) Ve a la pestaña Desencadenadores (Triggers) y haz clic en Nuevo:
- Configura cuándo quieres que se ejecute (dijimos que Diariamente a las 22:00).
5) Ve a la pestaña Acciones y haz clic en Nueva:
- En Acción, selecciona Iniciar un programa.
- En Programa o script, escribe: powershell.exe
- En la casilla Agregar argumentos (opcional), añade la siguiente línea (cambia la ruta por la ubicación real de tu script):
- -ExecutionPolicy Bypass -WindowStyle Hidden -File "C:\Scripts\backup_windows.ps1"
Conclusión
Hacer copias de seguridad en Windows ya veis que no necesitas instalar programas de dudosa procedencia ni nada raro, con unas pocas líneas de PowerShell y Robocopy nos hemos montado un sistema de backup de nivel semi-pro funcionando en el pc de forma gratuita y sigilosa.
Toma el control de tus copias, configura tu script hoy mismo y duerme con la tranquilidad de que tu trabajo está a salvo de cualquier pantallazo azul o borrado accidental.
>_Saludos!
No hay comentarios:
Publicar un comentario