Migración dtic-DASUTEN a estándar A04: - A04_dtic-DASUTEN.md: Manifiesto creado - A04.P001 a A04.P005: Planes renombrados de P2601.* - _hist/_hist_P2601_dasuten.md: Legacy archivado Migración dtic-BKPs a estándar A03: - A03_dtic-BKPs.md: Manifiesto creado - A03.P001, A03.P002: Planes migrados - docs/ambito/dtic-BKPs/: Nueva estructura Herramientas ADN nuevas: - adn/tools/bkps/: BKPs migrado a tools ADN - adn/tools/cli/dron.rb: Vigía de tareas largas - adn/tools/cli/copiloto.rb: Asistente CLI - adn/tools/cli/novato.rb: CLI de aprendizaje Limpieza: - dtic-BKPs/ → _hist/dtic-BKPs/ (legacy archivado) - adn/tools/cli/backup.rb → _hist/ (migrado a bkps.rb) Otros: - nodos/pcv-dasu1.md, srvv-data.md, srvv-nginx-rm.md: Actualizados - adn/tools/core/conciliador.rb: Mejoras - adn/tools/w-zombi/data/cmd.json: Actualizado Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
55 lines
1.3 KiB
Ruby
55 lines
1.3 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
# ==========================================================
|
|
# adn/tools/bkps/lib/sync_rclone.rb — Sincronización rclone
|
|
# Migrado desde dtic-BKPs v6.0 → ADN::BKPs
|
|
# ==========================================================
|
|
|
|
require 'shellwords'
|
|
|
|
module ADN
|
|
module BKPs
|
|
module Procesador
|
|
class Rclone
|
|
RCLONE_OPTS = %w[
|
|
--delete-before
|
|
--retries 5
|
|
--retries-sleep 10s
|
|
--timeout 30m
|
|
--contimeout 10m
|
|
--tpslimit 10
|
|
--progress
|
|
-v
|
|
].join(' ').freeze
|
|
|
|
def initialize(log)
|
|
@log = log
|
|
end
|
|
|
|
def ejecutar(tarea)
|
|
@log.info("--- #{tarea[:texto]} ---")
|
|
origen = tarea[:origen]
|
|
destino = tarea[:destino]
|
|
|
|
@log.info("Origen: #{origen}")
|
|
@log.info("Destino: #{destino}")
|
|
|
|
cmd = "rclone sync #{Shellwords.escape(origen)} #{Shellwords.escape(destino)} #{RCLONE_OPTS}"
|
|
@log.info("#{tarea[:id]}: Ejecutando → #{cmd}")
|
|
|
|
exito = system(cmd)
|
|
codigo = $?.exitstatus
|
|
|
|
if exito
|
|
@log.info("✔ Sincronización rclone completada.")
|
|
else
|
|
@log.error("#{tarea[:id]}: Fallo en sincronización (código: #{codigo}).")
|
|
end
|
|
|
|
exito
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|