101 lines
3.7 KiB
Ruby
101 lines
3.7 KiB
Ruby
#!/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"
|