You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
2.0 KiB
75 lines
2.0 KiB
|
|
---
|
|
|
|
## 2) `install.sh`
|
|
|
|
```bash
|
|
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
# ====== Parámetros ======
|
|
SVC_NAME="pjsip-dashboard"
|
|
BIN_SRC="scripts/generar_dashboard_extensiones.sh"
|
|
BIN_DST="/usr/local/bin/generar_dashboard_extensiones.sh"
|
|
WEB_ROOT="/var/www/html"
|
|
LOG_DIR_SUM="/var/log"
|
|
LOG_DIR_PROB="/var/log/pjsip_problems"
|
|
|
|
# ====== Comprobaciones ======
|
|
if [[ ! -f "$BIN_SRC" ]]; then
|
|
echo "ERROR: Falta $BIN_SRC. Copia aquí TU script actual (el que ya funciona) y vuelve a correr install.sh"
|
|
exit 1
|
|
fi
|
|
|
|
if [[ $EUID -ne 0 ]]; then
|
|
echo "Ejecuta como root: sudo ./install.sh"
|
|
exit 1
|
|
fi
|
|
|
|
echo "==> Actualizando índice de paquetes"
|
|
apt-get update -y
|
|
|
|
echo "==> Instalando dependencias mínimas"
|
|
# gawk, sed, grep, coreutils ya suelen venir; apache2 solo si no hay web root
|
|
PKGS=( gawk sed grep coreutils findutils )
|
|
if ! command -v a2enmod >/dev/null 2>&1 && [[ ! -d "$WEB_ROOT" ]]; then
|
|
PKGS+=( apache2 )
|
|
fi
|
|
|
|
# Instalar bc SOLO si tu script lo usa (buscamos 'bc')
|
|
if grep -q '\bbc\b' "$BIN_SRC"; then
|
|
PKGS+=( bc )
|
|
fi
|
|
|
|
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends "${PKGS[@]}"
|
|
|
|
# Crear web root si no existe
|
|
mkdir -p "$WEB_ROOT"
|
|
|
|
# Copiar logo si existe
|
|
if [[ -f "web/logo-sapian.png" ]]; then
|
|
cp -f web/logo-sapian.png "$WEB_ROOT/logo-sapian.png"
|
|
fi
|
|
|
|
# Copiar script generador
|
|
install -m 0755 "$BIN_SRC" "$BIN_DST"
|
|
|
|
# Crear directorios de logs
|
|
mkdir -p "$LOG_DIR_PROB"
|
|
chmod 755 "$LOG_DIR_PROB"
|
|
|
|
# Instalar unit files de systemd
|
|
install -m 0644 systemd/pjsip-dashboard.service /etc/systemd/system/pjsip-dashboard.service
|
|
install -m 0644 systemd/pjsip-dashboard.timer /etc/systemd/system/pjsip-dashboard.timer
|
|
|
|
# Recargar systemd y habilitar timer
|
|
systemctl daemon-reload
|
|
systemctl enable --now pjsip-dashboard.timer
|
|
|
|
# Forzar una corrida para generar el HTML al tiro
|
|
systemctl start pjsip-dashboard.service || true
|
|
|
|
echo "==> Listo. Abre: http://<IP>/dashboard.html"
|
|
echo " Logs resumen: /var/log/pjsip_dashboard_summary.csv"
|
|
echo " Logs problemas: /var/log/pjsip_problems/pjsip_problems-YYYY-MM-DD.csv"
|