Registro de mensajes atd a través de syslog

Registro de mensajes atd a través de syslog

Estoy ejecutando CentOS 5.3 y me gustaría registrar todos los mensajes del demonio "at". Mi syslog.conf contiene la siguiente entrada:

cron.* /var/log/cron

Supuse que la línea cron en syslog se refiere a toda la familia de "cron, anacron, at y lotes". Sin embargo, aunque las acciones cron y anacron parecen registrarse, las acciones "at" no se registran. ¿Cómo registro acciones atd?

Gracias por su atención

(Agregado) Me gustaría agregar el contenido de mi syslog.conf en caso de que haya un error:

# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.*                         /dev/console

# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none        /var/log/messages

# The authpriv file has restricted access.
authpriv.*                      /var/log/secure

# Log all the mail messages in one place.
mail.*                          -/var/log/maillog


# Log cron stuff
cron.*                          /var/log/cron

# Everybody gets emergency messages
*.emerg                         *

# Save news errors of level crit and higher in a special file.
uucp,news.crit                      /var/log/spooler

# Save boot messages also to boot.log
local7.*                        /var/log/boot.log

Respuesta1

Al mirar la fuente del programa 'at' (del repositorio fuente de CentOS 5.3), parece que efectivamente está iniciando sesión en syslog, pero solo se registran errores fatales relacionados con el demonio at (por ejemplo, si intenta ejecutar 2 demonios at al mismo tiempo).

Sin embargo, las ejecuciones de procesos, el código de retorno resultante y el error/salida estándar no se registran en syslog en absoluto. Incluso cuando se activa la depuración (que requiere recompilación), los mensajes de registro no son muy informativos (para los usuarios finales) y escriben algo como:

atd[24116]: pid 24121 exited with status 0.

Lo cual no le ayudará mucho a identificar qué comando se ejecutó, qué usuario o cuál fue su salida/error estándar.

atdhaceenvíe una notificación por correo electrónico al usuario que solicitó el comando, en caso de que el comando haya fallado o haya producido algo en su salida/error estándar. Pero para los comandos que se ejecutan correctamente sin ningún resultado, no se envía ningún correo. Puedes cambiar eso usando el indicador -m.

Dea la 1):

-m Enviar correo al usuario cuando el trabajo se haya completado incluso si no hubo resultados.

Respuesta2

Para casos como este, usaré un contenedor alrededor del comando que inicia sesión en syslog. Por ejemplo:

#!/bin/bash
logger -i -t mycmd Starting
/bin/somecommand
logger -i -t mycmd Completed
exit 0

Luego, desde cron, at, etc., llamaré al script contenedor.

Sé que esto es más una solución alternativa que una solución, pero hace el trabajo.

Respuesta3

/var/log/secure(RHEL)

atd registra a través de PAM, verifique su syslog.conf para saber dónde está iniciando sesión pam.

Respuesta4

De acuerdo aatd(8), ya se registra en syslog, solo necesita asegurarse de no tener reglas de syslog incorrectas.

Quizás publique su syslog.confarchivo aquí primero.

También tenga en cuenta que atdno es configurable en cuanto a designar una instalación de registro específica, pero eso no debería ser un problema, solo tendrá que asegurarse de que la configuración de syslog sea correcta.

información relacionada