docs & tools: Actualización de informes y scripts de migración DASUTEN
This commit is contained in:
@@ -0,0 +1,100 @@
|
||||
#!/usr/bin/env ruby
|
||||
# frozen_string_literal: true
|
||||
|
||||
# ==========================================================
|
||||
# Verificar backup en DASU-SQL4 - qué archivo hay y qué fecha tiene
|
||||
# ==========================================================
|
||||
|
||||
require_relative 'drones/lib/dasu_executor'
|
||||
|
||||
puts "=== VERIFICANDO BACKUP 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\\backup_info_output.json"
|
||||
$null = New-Item -ItemType Directory -Force -Path "C:\\temp"
|
||||
|
||||
# Listar backups en F:\\BACKUP
|
||||
Write-Host "=== ARCHIVOS EN F:\\BACKUP ==="
|
||||
$backups = Get-ChildItem "F:\\BACKUP\\*.bak" | Sort-Object LastWriteTime -Descending
|
||||
$backups | ForEach-Object {
|
||||
Write-Host " Archivo: $($_.Name)"
|
||||
Write-Host " Tamaño: $([math]::Round($_.Length / 1MB, 2)) MB"
|
||||
Write-Host " LastWriteTime: $($_.LastWriteTime)"
|
||||
Write-Host " CreationTime: $($_.CreationTime)"
|
||||
}
|
||||
|
||||
# Si hay backup, verificar fecha de los datos dentro
|
||||
if ($backups.Count -gt 0) {
|
||||
$backupMasReciente = $backups[0]
|
||||
Write-Host "`n=== INFORMACIÓN DEL BACKUP MÁS RECIENTE ==="
|
||||
Write-Host " Archivo: $($backupMasReciente.Name)"
|
||||
|
||||
# Conectar a SQL y verificar fecha máxima en BonosAfiliado
|
||||
$connString = "Server=localhost;Database=sysdasuten;Integrated Security=true;TrustServerCertificate=yes;"
|
||||
$conn = New-Object System.Data.SqlClient.SqlConnection($connString)
|
||||
$conn.Open()
|
||||
|
||||
$cmd = New-Object System.Data.SqlClient.SqlCommand("SELECT MAX(fecha) as ultima_fecha FROM [BonosAfiliado]", $conn)
|
||||
try {
|
||||
$ultimaFecha = $cmd.ExecuteScalar()
|
||||
Write-Host " ÚLTIMA FECHA EN BonosAfiliado: $ultimaFecha"
|
||||
} catch {
|
||||
Write-Host " ERROR al obtener fecha: $_"
|
||||
}
|
||||
|
||||
$cmd = New-Object System.Data.SqlClient.SqlCommand("SELECT COUNT(*) FROM [BonosAfiliado] WHERE fecha >= '2026-04-15'", $conn)
|
||||
try {
|
||||
$count15 = $cmd.ExecuteScalar()
|
||||
Write-Host " Registros el 2026-04-15: $count15"
|
||||
} catch {
|
||||
Write-Host " ERROR al contar registros del 15: $_"
|
||||
}
|
||||
|
||||
$cmd = New-Object System.Data.SqlClient.SqlCommand("SELECT COUNT(*) FROM [BonosAfiliado] WHERE fecha >= '2026-04-14'", $conn)
|
||||
try {
|
||||
$count14 = $cmd.ExecuteScalar()
|
||||
Write-Host " Registros desde 2026-04-14: $count14"
|
||||
} catch {
|
||||
Write-Host " ERROR al contar registros desde 14: $_"
|
||||
}
|
||||
|
||||
$cmd = New-Object System.Data.SqlClient.SqlCommand("SELECT COUNT(*) FROM [BonosAfiliado] WHERE fecha >= '2026-04-13'", $conn)
|
||||
try {
|
||||
$count13 = $cmd.ExecuteScalar()
|
||||
Write-Host " Registros desde 2026-04-13: $count13"
|
||||
} catch {
|
||||
Write-Host " ERROR al contar registros desde 13: $_"
|
||||
}
|
||||
|
||||
$conn.Close()
|
||||
}
|
||||
|
||||
# Verificar fecha de restore en msdb
|
||||
Write-Host "`n=== FECHA DE RESTORE EN msdb ==="
|
||||
$conn = New-Object System.Data.SqlClient.SqlConnection($connString)
|
||||
$conn.Open()
|
||||
|
||||
$cmd = New-Object System.Data.SqlClient.SqlCommand("SELECT TOP 5 destination_database_name, restore_date, backup_start_date FROM msdb.dbo.restorehistory WHERE destination_database_name = 'sysdasuten' ORDER BY restore_date DESC", $conn)
|
||||
$adapter = New-Object System.Data.SqlClient.SqlDataAdapter($cmd)
|
||||
$ds = New-Object System.Data.DataSet
|
||||
$adapter.Fill($ds)
|
||||
|
||||
if ($ds.Tables[0].Rows.Count -gt 0) {
|
||||
$ds.Tables[0].Rows | ForEach-Object {
|
||||
Write-Host " Restore: $($_.restore_date)"
|
||||
Write-Host " Backup de: $($_.backup_start_date)"
|
||||
Write-Host " BD: $($_.destination_database_name)"
|
||||
}
|
||||
} else {
|
||||
Write-Host " No hay registros de restore"
|
||||
}
|
||||
|
||||
$conn.Close()
|
||||
PSCMD
|
||||
|
||||
DasuExecutor.execute_ps_on_dasu(ps_script)
|
||||
|
||||
puts "\n✅ Verificación completada"
|
||||
Reference in New Issue
Block a user