require 'tiny_tds' require 'time' pass = ENV['PASS'] || begin puts "Falta ENV['PASS'] (usar candados run utnlarioja.intranet:monlaricardo 'ruby adn/tools/cli/dasuten_backup_origen.rb')" exit 1 end host = ENV['SQL_HOST'] || '10.0.10.200' user = ENV['SQL_USER'] || 'UTNlarioja\\monlaricardo' begin client = TinyTds::Client.new( username: user, password: pass, host: host, timeout: 600 # 10 minutos ) puts "[+] Conectado exitosamente a SQL Server en #{host}" backup_file = "E:\\BK_SQL\\sysdasuten_compressed_ADN.bak" puts "[*] Iniciando BACKUP DATABASE de 'sysdasuten' hacia #{backup_file}..." puts " (Esto puede tomar unos 10-30 segundos usando compresión, por favor espera...)" start_time = Time.now res = client.execute("BACKUP DATABASE sysdasuten TO DISK = '#{backup_file}' WITH INIT, COMPRESSION, STATS=10") res.each { |r| puts r } # Consumir resultados para esperar a que termine duration = Time.now - start_time puts "[+] Backup completado exitosamente en #{duration.round(2)} segundos." rescue => e puts "[!] Error fatal: #{e.message}" end