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.
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"
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
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
| 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) |
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.