#!/usr/bin/env ruby # frozen_string_literal: true require 'tiny_tds' require_relative 'drones/lib/dasu_executor' puts "=== VERIFICANDO BACKUP EN DASU-SQL4 ===" puts "" # ========================================== # 1. FENIX - Verificar datos actuales # ========================================== puts "[1] FENIX - Estado actual de BonosAfiliado:" pass_cmd = `ruby adn/tools/candados/candados.rb get utnlarioja.intranet:monlaricardo 2>/dev/null`.strip sql_user = 'UTNlarioja\\monlaricardo' sql_host = '10.0.10.200' client_fenix = TinyTds::Client.new( username: sql_user, password: pass_cmd, host: sql_host, timeout: 600, database: 'sysdasuten' ) # Última fecha y registros del 15 result = client_fenix.execute("SELECT MAX(fecha) as ultima FROM BonosAfiliado") puts " Última fecha: #{result.first['ultima']}" result = client_fenix.execute("SELECT COUNT(*) as c FROM BonosAfiliado WHERE fecha = '2026-04-15'") puts " Registros el 2026-04-15: #{result.first['c']}" # Ver IDs máximos result = client_fenix.execute("SELECT MAX(idsolicitud) as max_id FROM BonosAfiliado") puts " ID máximo en FENIX: #{result.first['max_id']}" client_fenix.close # ========================================== # 2. DASU-SQL4 - Verificar datos del backup # ========================================== puts "\n[2] DASU-SQL4 - Datos del backup restaurado:" ps_script = <<~PSCMD.strip $ErrorActionPreference = "Stop" $connString = "Server=localhost;Database=sysdasuten;Integrated Security=true;TrustServerCertificate=yes;" $conn = New-Object System.Data.SqlClient.SqlConnection($connString) $conn.Open() Write-Host " Última fecha en BonosAfiliado:" $cmd = New-Object System.Data.SqlClient.SqlCommand("SELECT MAX(fecha) as ultima FROM BonosAfiliado", $conn) try { $ultima = $cmd.ExecuteScalar() Write-Host " $ultima" } catch { Write-Host " ERROR: $_" } Write-Host " Registros el 2026-04-15:" $cmd = New-Object System.Data.SqlClient.SqlCommand("SELECT COUNT(*) as c FROM BonosAfiliado WHERE fecha = '2026-04-15'", $conn) try { $c = $cmd.ExecuteScalar() Write-Host " $c" } catch { Write-Host " ERROR: $_" } Write-Host " ID máximo en BonosAfiliado:" $cmd = New-Object System.Data.SqlClient.SqlCommand("SELECT MAX(idsolicitud) as max_id FROM BonosAfiliado", $conn) try { $maxId = $cmd.ExecuteScalar() Write-Host " $maxId" } catch { Write-Host " ERROR: $_" } # Ver fecha de restore en msdb Write-Host "`n Último restore:" $cmd = New-Object System.Data.SqlClient.SqlCommand("SELECT TOP 1 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) { $row = $ds.Tables[0].Rows[0] Write-Host " Restore date: $($row.restore_date)" Write-Host " Backup start: $($row.backup_start_date)" } $conn.Close() PSCMD DasuExecutor.execute_ps_on_dasu(ps_script) puts "\n[3] ARCHIVOS DE BACKUP EN DASU-SQL4:" ps_script = <<~PSCMD.strip Get-ChildItem "F:\\BACKUP\\*.bak" | ForEach-Object { Write-Host " $($_.Name)" Write-Host " LastWriteTime: $($_.LastWriteTime)" Write-Host " CreationTime: $($_.CreationTime)" } PSCMD DasuExecutor.execute_ps_on_dasu(ps_script) puts "\n✅ Verificación completada"