gershwin.pages.dev

Como criar backup incremental de pasta com PowerShell?

Manter backups atualizados de pastas críticas pode ser uma tarefa demorada e propensa a erros manuais. Com o PowerShell, você pode automatizar o processo de backup incremental, garantindo que apenas os arquivos novos ou modificados sejam copiados, economizando tempo e espaço em disco.

Pré-requisitos

1. Criar o script de backup incremental

Para criar um backup incremental, usaremos o cmdlet Robocopy, que é otimizado para cópias de arquivos grandes e oferece opções específicas para backups incrementais.

$origem = "C:\PastaOrigem"
$destino = "D:\BackupIncremental"
$data = Get-Date -Format "yyyy-MM-dd_HH-mm-ss"

# Criar pasta de destino com timestamp
$destinoFinal = Join-Path $destino $data
New-Item -ItemType Directory -Path $destinoFinal -Force

# Executar backup incremental com Robocopy
Robocopy $origem $destinoFinal /E /XO /R:3 /W:5 /LOG:"$destino\backup_log.txt"

2. Configurar o script para execução automática

Para automatizar o backup, você pode agendar o script para rodar diariamente usando o Agendador de Tarefas do Windows.

# Salvar o script como backup_incremental.ps1
# Agendar no PowerShell:
$trigger = New-ScheduledTaskTrigger -Daily -At 2am
$action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-File C:\Scripts\backup_incremental.ps1"
Register-ScheduledTask -TaskName "BackupIncremental" -Trigger $trigger -Action $action -RunLevel Highest

3. Monitorar o log de backup

O script gera um arquivo de log em cada execução, permitindo rastrear o que foi copiado e identificar possíveis falhas.

# Exibir o último log gerado
Get-Content "$destino\backup_log.txt" -Tail 20

Exemplo Prático

Pasta Origem Arquivo Status no Backup
C:\PastaOrigem relatorio.docx Copiado (novo)
C:\PastaOrigem dados.xlsx Ignorado (não modificado)
C:\PastaOrigem apresentacao.pptx Copiado (modificado)

Conclusão

Com este método, você automatiza o backup incremental de pastas em segundos, garantindo que apenas os arquivos necessários sejam copiados e mantendo um histórico organizado por data. O PowerShell oferece flexibilidade e confiabilidade para proteger seus dados críticos sem intervenção manual.