Vamos a crear un script y a programarlo para que realice backups de seguridad de las carpetas y ficheros que no importen, de una manera automatizada con powershell.
Para ello vamos a escribir el siguiente código (y a adaptarlo a las necesidades) con vuestro editor de código favorito.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 # Backup de seguridad con Powershell
# Configuración de la ubicación de destino para los archivos de respaldo
$destino = "C:\Ruta\De\Destino"
# Especificación de archivos y carpetas a respaldar
$archivosACopiar = @(
"C:\Ruta\De\Archivo1.txt",
"C:\Ruta\De\Carpeta1",
"C:\Ruta\De\Carpeta2"
)
# Función para realizar la copia de seguridad
function RealizarCopiaDeSeguridad {
# Crear un nombre de archivo único para el respaldo
$fecha = Get-Date -Format "yyyyMMdd-HHmmss"
$nombreArchivo = "CopiaDeSeguridad_$fecha.zip"
$rutaCompleta = Join-Path -Path $destino -ChildPath $nombreArchivo
# Comprimir los archivos y carpetas en un archivo ZIP
Compress-Archive -Path $archivosACopiar -DestinationPath $rutaCompleta -Force
Write-Host "Copia de seguridad completada. Archivo guardado en: $rutaCompleta"
}
# Programar copias de seguridad periódicas (ejemplo: cada domingo a las 2:00 AM)
$trigger = New-JobTrigger -Weekly -DaysOfWeek Sunday -At "2:00 AM"
Register-ScheduledJob -Name "CopiaDeSeguridadSemanal" -ScriptBlock { RealizarCopiaDeSeguridad } -Trigger $trigger
Write-Host "Copia de seguridad programada semanalmente. Archivos a respaldar:"
$archivosACopiar
Write-Host "Ubicación de destino de la copia de seguridad: $destino"
Para los que nos gusta entender qué es lo que estamos haciendo, a continuación explico cada apartado del script:
- Configuración inicial: Define la ubicación de destino para los archivos de backup y especifica los archivos y carpetas que se deben copiar.
- Función de copia de seguridad: Define una función llamadaque crea un archivo ZIP con los archivos y carpetas especificados y lo guarda en la ubicación de destino.1RealizarCopiaDeSeguridad
- Programación de copias de seguridad periódicas: Programa una tarea de copia de seguridad semanal utilizando el módulo. En este ejemplo, la copia de seguridad se programa para ejecutarse todos los domingos a las 2:00 AM.1ScheduledTasks
- Mensaje informativo: Muestra un mensaje indicando los archivos a respaldar y la ubicación de destino de la copia de seguridad.
Recuerda modificar las rutas de los archivos y carpetas a guardar(
1 | $archivosACopiar |
1 | $destino |
Y ahora bien… ¿cuál es es tu editor de código favorito?