CLI avanzada: tareas e informes por correo
Utiliza SSH para diagnosticar tareas, pausarlas y reanudarlas con el instalador compatible o ejecutar manualmente un informe semanal o mensual que reúna los requisitos. Los comandos actúan sobre la instalación y sus destinatarios configurados.
Identificar instalación y cuenta de ejecución
Los ejemplos usan /var/www/html/obelisk y /usr/bin/php. Sustitúyelos por la ruta y el PHP CLI reales. Accede al PBX por SSH con autorización para sudo y ejecuta una orden cada vez. Los workers y herramientas que cargan la configuración se ejecutan normalmente como asterisk. Las órdenes indicadas con sudo sin -u requieren privilegios administrativos del sistema.
Conserva el instalador extraído original y su estado guardado. Su carpeta es distinta de la aplicación. Antes de reparar identifica el fallo y conserva un respaldo adecuado. No incluyas contraseñas, claves API ni credenciales SQL en argumentos, capturas o registros compartidos.
Entrar en la aplicación
Las rutas PHP relativas siguientes parten de aquí. Este comando solo cambia el directorio de la sesión.
Comandocd /var/www/html/obelisk
Leer la programación instalada
Una instalación estándar escribe /etc/cron.d/obelisk con seis tipos de tarea, todos como asterisk. Hay siete líneas de ejecución porque audio tiene dos arranques escalonados. La tabla muestra los valores iniciales; las órdenes oficiales de pausa y reanudación conservan horarios y opciones personalizados.
Los horarios Linux siguen la zona horaria de cron del servidor. Los eventos SQL utilizan el programador de la base de datos y la zona horaria registrada en cada evento. El huso del informe define su periodo; cambiarlo no reprograma cron. Consulta el archivo instalado y el panel Eventos de base de datos antes de interpretar un retraso.
Consultar el horario Linux real
Comando de solo lectura. Las líneas que empiezan por # están inactivas. Conserva este archivo en /etc/cron.d: no lo importes con crontab.
Comandosudo cat /etc/cron.d/obelisk
| Tarea | Horario inicial |
|---|---|
| logger | Cada minuto. |
| audio | Cada minuto y un segundo arranque tras 30 segundos. Los bloqueos y requisitos del worker pueden aplazar el procesamiento. |
| weekly | Lunes a las 06:00. |
| monthly | Primer día del mes a las 06:00. |
| cleaner | Cada día a las 03:30, con --apply; el ajuste de limpieza independiente debe autorizar el borrado. |
| retention | Cada día a las 04:00, con --apply; el ajuste de conservación de audio debe autorizar el borrado. |
| min_queue / min_out (SQL) | Cada uno cada 15 minutos en la base de datos, separados por 7 minutos y 30 segundos en las definiciones distribuidas. No son tareas cron Linux adicionales. |
Pausar y reanudar el procesamiento programado
Ejecuta estas órdenes desde el instalador original, después de completar la instalación. Añade las mismas opciones --path y --php si utilizaste rutas personalizadas. La herramienta usa el estado guardado y puede requerir acceso SQL administrativo. Si faltan el kit o el estado, consulta al soporte; no ejecutes una instalación nueva sobre la aplicación activa.
Pausar nuevas ejecuciones
Desactiva las tareas Linux de Obelisk y sus eventos SQL min_queue/min_out. No interrumpe procesos iniciados: espera a que terminen. Lee el resultado: si falla el acceso SQL, las tareas Linux pueden estar desactivadas sin haber confirmado el estado de los eventos.
Comandosudo bash install.sh --disable-jobsReanudar después de verificar
Reactiva las tareas y solicita activar los eventos SQL. Conserva horarios/opciones existentes y no activa por sí sola los interruptores de borrado de audio. Si activar el programador SQL global iniciaría eventos ajenos, evalúa la pregunta con el administrador SQL. Resuelve avisos y repite la misma orden: activar Linux no confirma el procesamiento SQL.
Comandosudo bash install.sh --activate-jobsVerificar ambos niveles
En Administración revisa programación, observaciones recientes y procesamiento SQL. Confirma una nueva ejecución válida tras reanudar. Pausar estas tareas no apaga FreePBX ni impide que un experto lance deliberadamente un worker manualmente.
Elegir informe y periodo correctos
Antes de repetir un informe verifica fechas, zona horaria del PBX/informe, análisis de grabaciones disponibles, Gemini, idioma, remitente SMTP y destinatarios REPORT_EMAIL_TO en Sistema y utilidades. Se genera a partir de análisis guardados; no analiza automáticamente cada audio pendiente.
La zona del informe define los límites del calendario; no reescribe los horarios cron. El programador sigue su horario y zona configurados en el servidor. Revisa ambos y comprueba las fechas reales en la vista previa.
| Herramienta / operación | Finalidad, efectos y límites |
|---|---|
| weekly | Semana completa anterior de lunes a domingo, calculada al ejecutar según la zona horaria configurada. Si se ejecuta la próxima semana, selecciona otra semana. |
| monthly | Mes natural completo anterior. No son los últimos 30 días móviles. |
| monthly --test | Últimos 30 días naturales incluido hoy. Sin --dry-run solicita IA y envía correo a los destinatarios reales. No es una prueba aislada de SMTP. |
| Diario o periodo pasado arbitrario | No existe worker de correo diario ni opción CLI de fechas libres. Usa la selección de fechas de Calidad e IA para revisar a petición o acuerda otro flujo de correo con soporte. No renombres scripts ni cambies el reloj del servidor. |
Comprobar requisitos sin IA ni correo
Usa la entrada directa para ver mensajes en el terminal además del registro configurado. Estos scripts pasan por el mismo ejecutor oficial. Elige la orden semanal o mensual correspondiente.
Comprobar el semanal
Lee periodo, zona, summaries, minimum_summaries, cobertura y eligible. Fechas desconocidas o análisis incompletos pueden reducir la muestra utilizable.
Comandosudo -u asterisk /usr/bin/php cron_weekly_trends.php --dry-runComprobar el mensual
Lee valid_calls, minimum_calls y eligible. El mínimo mensual es de 10 llamadas utilizables. La salida identifica el periodo real; no lo deduzcas solo de la fecha del comando.
Comandosudo -u asterisk /usr/bin/php cron_monthly_report.php --dry-run
Ejecutar una vez y verificar el envío
Tras resolver la causa y comprobar que no se entregó ya el informe, elige una de las órdenes siguientes. La ejecución consume la cuota Gemini que corresponda y envía a destinatarios reales. No modifica el cron instalado.
Generar el semanal
Espera y lee el resultado final IA/SMTP. Un salto por configuración, datos insuficientes o bloqueo de otro proceso no es un envío.
Comandosudo -u asterisk /usr/bin/php cron_weekly_trends.phpGenerar el mensual
Úsalo para el mes natural anterior. No añadas --test solo por estar diagnosticando: cambia el periodo y sigue enviando correo.
Comandosudo -u asterisk /usr/bin/php cron_monthly_report.phpVerificar el resultado final
Comprueba inmediatamente el código de salida y después registro, observación en Administración y buzón. Código 0 también puede indicar un salto intencionado. Éxito SMTP confirma aceptación del servidor, no llegada a la bandeja. Revisa spam, cuarentena o trazas del correo.
Comandoecho $?
Localizar registros y distinguir resultados
El ejecutor resuelve las rutas desde la configuración; no presupongas una carpeta logs fija. --log-path devuelve la ruta del trabajo sin iniciarlo. Sustituye weekly por monthly, audio, logger, cleaner o retention. Consulta ese archivo con tu visor autorizado y oculta destinatarios y detalles de infraestructura antes de compartir.
Localizar el registro semanal
La salida es una ruta, no el resultado de generación.
Comandosudo -u asterisk /usr/bin/php cron_run.php --log-path weekly
| Herramienta / operación | Finalidad, efectos y límites |
|---|---|
| audio / logger | audio procesa análisis y puede llamar a Gemini; logger recoge datos live/históricos y puede enviar alertas pendientes. Ninguno es un informe diario. No los ejecutes como pruebas sin efectos. |
| weekly / monthly | Workers IA/correo descritos arriba. Requieren datos, configuración válida y licencia. Hay protección de concurrencia, no deduplicación garantizada entre ejecuciones sucesivas. |
| cleaner / retention | Borrado de grabaciones por categorías o antigüedad. Sin argumentos o con --dry-run muestra candidatos; --apply exige además la política de borrado activada. No reparan informes SQL. |