#!/bin/bash # Configura las rutas MONITOR_SCRIPT="monitor_nfs.sh" SYSTEMD_SERVICE="monitor_nfs.service" LOGROTATE_CONF="monitor_nfs_logrotate" INITD_SERVICE="monitor_nfs" # Nombre del script de servicio init.d SYSTEMD_PATH="/etc/systemd/system" LOGROTATE_PATH="/etc/logrotate.d" INITD_PATH="/etc/init.d" SCRIPT_DEST="/usr/local/bin" # Inicializa el estado de exito installation_success=true # Comprueba que se ejecuta como root if [[ $EUID -ne 0 ]]; then echo "Este script debe ejecutarse como root." exit 1 fi # Copia el script de monitoreo al directorio de destino y otorga permisos de ejecucion echo "Copiando el script de monitoreo a $SCRIPT_DEST..." mkdir -p "$SCRIPT_DEST" if cp "$MONITOR_SCRIPT" "$SCRIPT_DEST/$MONITOR_SCRIPT"; then chmod +x "$SCRIPT_DEST/$MONITOR_SCRIPT" else echo "Error al copiar el script de monitoreo." installation_success=false fi # Verifica si systemd esta disponible if command -v systemctl > /dev/null; then # Copia el archivo de servicio systemd y recarga el daemon echo "Instalando el servicio de systemd..." if cp "$SYSTEMD_SERVICE" "$SYSTEMD_PATH/$SYSTEMD_SERVICE"; then systemctl daemon-reload else echo "Error al copiar el archivo de servicio systemd." installation_success=false fi # Copia el archivo de configuracion de logrotate echo "Configurando logrotate..." if cp "$LOGROTATE_CONF" "$LOGROTATE_PATH/monitor_nfs"; then chmod 644 "$LOGROTATE_PATH/monitor_nfs" else echo "Error al configurar logrotate." installation_success=false fi # Habilita y arranca el servicio de systemd echo "Habilitando y arrancando el servicio de monitoreo (systemd)..." if systemctl enable "$SYSTEMD_SERVICE" && systemctl start "$SYSTEMD_SERVICE"; then systemctl status "$SYSTEMD_SERVICE" else echo "Error al habilitar o arrancar el servicio systemd." installation_success=false fi elif [ -d "$INITD_PATH" ] && command -v service > /dev/null; then # Copia el archivo de servicio init.d echo "Instalando el servicio init.d..." if cp "$INITD_SERVICE" "$INITD_PATH/$INITD_SERVICE"; then chmod +x "$INITD_PATH/$INITD_SERVICE" else echo "Error al copiar el archivo de servicio init.d." installation_success=false fi # Habilita el servicio init.d en Alpine Linux (usando rc-update) if [[ -f /etc/alpine-release ]]; then echo "Detectado Alpine Linux. Usando rc-update para habilitar el servicio." if rc-update add "$INITD_SERVICE" default; then rc-service "$INITD_SERVICE" start rc-service "$INITD_SERVICE" status else echo "Error al habilitar el servicio init.d con rc-update." installation_success=false fi else echo "Sistema sin soporte, no es Alpine ni tiene systemd. No se puede configurar el servicio." installation_success=false fi else echo "No se encontro ni systemd ni init.d en el sistema. No se puede configurar el servicio." exit 1 fi # Verifica el estado de exito y muestra el mensaje final if $installation_success; then echo "Configuracion completada con exito." else echo "Hubo errores durante la instalacion. Verifica los mensajes anteriores para mas detalles." fi