Files
dtic-DIIAA/adn/tools/cli/limpiar_fenix_orig.rb
T

62 lines
1.8 KiB
Ruby

#!/usr/bin/env ruby
# frozen_string_literal: true
require 'tiny_tds'
require_relative 'drones/lib/dasu_executor'
puts "=== VERIFICANDO BACKUPS EN FENIX (E:\\BK_SQL\\sysdasuten\\) ==="
puts ""
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 = TinyTds::Client.new(
username: sql_user,
password: pass_cmd,
host: sql_host,
timeout: 600,
database: 'sysdasuten'
)
# Listar backups en E:\BK_SQL\sysdasuten\
ps_script = <<~PSCMD.strip
$ErrorActionPreference = "Stop"
$path = "E:\\BK_SQL\\sysdasuten"
if (Test-Path $path) {
$backups = Get-ChildItem "$path\\sysdasuten*.bak" | Sort-Object LastWriteTime -Descending
Write-Host "Archivos encontrados:"
$backups | ForEach-Object {
$sizeMB = [math]::Round($_.Length / 1MB, 2)
Write-Host " $($_.Name) - ${sizeMB} MB - $($_.LastWriteTime)"
}
Write-Host "`nTotal archivos: $($backups.Count)"
$totalSize = ($backups | Measure-Object -Property Length -Sum).Sum / 1MB
Write-Host "Total tamaño: $([math]::Round($totalSize, 2)) MB"
# Si hay más de 1, eliminar los viejos
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
}
$restantes = Get-ChildItem "$path\\sysdasuten*.bak" | Sort-Object LastWriteTime -Descending
Write-Host "`nRestantes: $($restantes.Count)"
}
} else {
Write-Host "El directorio no existe"
}
PSCMD
result = client.execute("EXEC xp_cmdshell 'powershell -Command \"' + ps_script.gsub('\"', '\"\"') + '\"'")
result.each { |r| puts r['output'] if r['output'] }
client.close