docs & tools: Actualización de informes y scripts de migración DASUTEN
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
#!/usr/bin/env ruby
|
||||
# frozen_string_literal: true
|
||||
|
||||
require_relative 'drones/lib/dasu_executor'
|
||||
|
||||
puts "=== LIMPIEZA DE BACKUPS EN DASU-SQL4 ==="
|
||||
puts "Fecha: #{Time.now.strftime('%Y-%m-%d %H:%M:%S')}"
|
||||
puts ""
|
||||
|
||||
ps_script = <<~PSCMD.strip
|
||||
$ErrorActionPreference = "Stop"
|
||||
$JSON_PATH = "C:\\temp\\limpieza_output.json"
|
||||
|
||||
$null = New-Item -ItemType Directory -Force -Path "C:\\temp"
|
||||
|
||||
# Listar todos los backups
|
||||
$backups = Get-ChildItem "F:\\BACKUP\\sysdasuten*.bak" | Sort-Object LastWriteTime -Descending
|
||||
|
||||
Write-Host "=== ANTES DE LIMPIEZA ==="
|
||||
Write-Host "Total archivos: $($backups.Count)"
|
||||
$totalSize = ($backups | Measure-Object -Property Length -Sum).Sum / 1MB
|
||||
Write-Host "Total tamaño: $([math]::Round($totalSize, 2)) MB"
|
||||
|
||||
Write-Host "`nArchivos:"
|
||||
$backups | ForEach-Object {
|
||||
$sizeMB = [math]::Round($_.Length / 1MB, 2)
|
||||
Write-Host " $($_.Name) - ${sizeMB} MB - $($_.LastWriteTime)"
|
||||
}
|
||||
|
||||
# Mantener solo el más reciente
|
||||
if ($backups.Count -gt 1) {
|
||||
$aEliminar = $backups | Select-Object -Skip 1
|
||||
|
||||
Write-Host "`n=== ELIMINANDO $($aEliminar.Count) ARCHIVOS ==="
|
||||
$aEliminar | ForEach-Object {
|
||||
Write-Host " Eliminando: $($_.Name)..."
|
||||
Remove-Item $_.FullName -Force
|
||||
}
|
||||
|
||||
# Verificar resultado
|
||||
$restantes = Get-ChildItem "F:\\BACKUP\\sysdasuten*.bak" | Sort-Object LastWriteTime -Descending
|
||||
Write-Host "`n=== DESPUÉS DE LIMPIEZA ==="
|
||||
Write-Host "Total archivos: $($restantes.Count)"
|
||||
$totalSize = ($restantes | Measure-Object -Property Length -Sum).Sum / 1MB
|
||||
Write-Host "Total tamaño: $([math]::Round($totalSize, 2)) MB"
|
||||
|
||||
$restantes | ForEach-Object {
|
||||
$sizeMB = [math]::Round($_.Length / 1MB, 2)
|
||||
Write-Host " $($_.Name) - ${sizeMB} MB - $($_.LastWriteTime)"
|
||||
}
|
||||
|
||||
$resultado = @{
|
||||
eliminados = $aEliminar.Count
|
||||
restantes = $restantes.Count
|
||||
espacio_libre_mb = [math]::Round($totalSize, 2)
|
||||
timestamp = (Get-Date -Format "o")
|
||||
}
|
||||
} else {
|
||||
Write-Host "`n=== NO HAY NADA QUE ELIMINAR ==="
|
||||
$resultado = @{
|
||||
eliminados = 0
|
||||
restantes = $backups.Count
|
||||
timestamp = (Get-Date -Format "o")
|
||||
}
|
||||
}
|
||||
|
||||
$resultado | ConvertTo-Json | Out-File -FilePath $JSON_PATH -Encoding utf8
|
||||
PSCMD
|
||||
|
||||
DasuExecutor.execute_ps_on_dasu(ps_script, output_path: 'C:\temp\limpieza_output.json')
|
||||
resultado = DasuExecutor.read_json_from_dasu('C:\temp\limpieza_output.json')
|
||||
|
||||
puts "\n=== RESUMEN ==="
|
||||
puts " Archivos eliminados: #{resultado['eliminados']}"
|
||||
puts " Archivos restantes: #{resultado['restantes']}"
|
||||
puts " Espacio usado: #{resultado['espacio_libre_mb']} MB" if resultado['espacio_libre_mb']
|
||||
|
||||
puts "\n✅ Limpieza completada"
|
||||
Reference in New Issue
Block a user