From 2ff4d314ded1f1f8591584b33dbe7a87d9fc9bef Mon Sep 17 00:00:00 2001 From: Lizandro Guarnizo <77708265+lizandrogd@users.noreply.github.com> Date: Thu, 25 Jun 2026 09:00:31 -0500 Subject: [PATCH] =?UTF-8?q?fix:=20mejorar=20detecci=C3=B3n=20de=20errores?= =?UTF-8?q?=20en=20install.sh=20(espacio,=20permisos,=20HTTP=20code)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 --- agent/install.sh | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/agent/install.sh b/agent/install.sh index 5b274fc..0c224bc 100644 --- a/agent/install.sh +++ b/agent/install.sh @@ -74,17 +74,34 @@ info "Directorio: ${INSTALL_DIR}" info "Intervalo: ${INTERVAL}s" # ── Instalar binario ────────────────────────────────────────────────────────── -mkdir -p "$INSTALL_DIR" +mkdir -p "$INSTALL_DIR" || error "No se pudo crear directorio ${INSTALL_DIR} (¿permisos?)" + +# Verificar espacio disponible (necesita al menos 20 MB) +AVAIL_KB=$(df -k "$INSTALL_DIR" 2>/dev/null | awk 'NR==2 {print $4}') +if [[ -n "$AVAIL_KB" && "$AVAIL_KB" -lt 20480 ]]; then + error "Espacio insuficiente en ${INSTALL_DIR}: solo ${AVAIL_KB} KB disponibles (se necesitan ≥20 MB)" +fi + info "Descargando agente desde ${DOWNLOAD_URL}..." +DEST="${INSTALL_DIR}/usite-agent" if command -v curl &>/dev/null; then - curl -fsSL "$DOWNLOAD_URL" -o "${INSTALL_DIR}/usite-agent" || error "No se pudo descargar" + HTTP_CODE=$(curl -fsSL --write-out "%{http_code}" "$DOWNLOAD_URL" -o "$DEST" 2>/tmp/curl_err) || { + CURL_ERR=$(cat /tmp/curl_err 2>/dev/null) + error "No se pudo descargar (HTTP ${HTTP_CODE:-?}). ${CURL_ERR}\nVerifica: df -h ${INSTALL_DIR}" + } elif command -v wget &>/dev/null; then - wget -q "$DOWNLOAD_URL" -O "${INSTALL_DIR}/usite-agent" || error "No se pudo descargar" + wget -q "$DOWNLOAD_URL" -O "$DEST" || error "No se pudo descargar con wget" else error "Se requiere curl o wget" fi -chmod +x "${INSTALL_DIR}/usite-agent" -ok "Binario descargado" + +# Verificar que el binario es un ejecutable válido +if [[ ! -s "$DEST" ]]; then + error "El archivo descargado está vacío: ${DEST}" +fi + +chmod +x "$DEST" +ok "Binario descargado ($(du -sh "$DEST" | cut -f1))" # ── Configuración ───────────────────────────────────────────────────────────── cat > "${INSTALL_DIR}/agent.yml" <