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" <