32 lines
1.1 KiB
Ruby
32 lines
1.1 KiB
Ruby
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
|