Registrando mensagens atd via syslog

Registrando mensagens atd via syslog

Estou executando o CentOS 5.3 e gostaria de registrar todas as mensagens do daemon "at". Meu syslog.conf contém a seguinte entrada:

cron.* /var/log/cron

Presumi que a linha cron no syslog se refere a toda a família de "cron, anacron, at e batch". No entanto, embora as ações cron e anacron pareçam ser registradas, as ações "at" não são registradas. Como faço para registrar ações do atd?

Obrigado pela sua atenção

(Adicionado) Gostaria de adicionar o conteúdo do meu syslog.conf caso haja um erro:

# 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

Responder1

Observando a fonte do programa 'at' (do repositório de origem do CentOS 5.3), parece que ele está realmente registrando no syslog, mas apenas erros fatais relacionados ao daemon at em si são registrados (por exemplo, se você tentar executar 2 daemons at ao mesmo tempo).

No entanto, as execuções do processo, o código de retorno resultante e o erro/saída padrão não são registrados no syslog. Mesmo ao ativar a depuração (que requer recompilação), as mensagens de log não são muito informativas (para usuários finais) e escrevem algo como:

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

O que não vai te ajudar muito a identificar qual comando foi executado, por qual usuário ou qual foi sua saída/erro padrão.

atdfazenvie uma notificação por e-mail ao usuário que solicitou o comando, caso o comando tenha falhado ou produzido algo em sua saída/erro padrão. Mas para comandos bem-sucedidos sem qualquer saída, nenhum email é enviado. Você pode mudar isso usando o sinalizador -m.

Deem 1):

-m Enviar e-mail ao usuário quando o trabalho for concluído, mesmo que não tenha havido saída.

Responder2

Para casos como esse, usarei um wrapper em torno do comando que registra no syslog. Por exemplo:

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

Então, do cron, at, etc, chamarei o script wrapper.

Eu sei que isso é mais uma solução do que uma solução, mas dá conta do recado.

Responder3

/var/log/secure(RHEL)

atd registra via PAM, verifique seu syslog.conf para descobrir onde o pam está registrando.

Responder4

De acordo comatd(8), ele já registra no syslog, você só precisa ter certeza de que não possui nenhuma regra de syslog incorreta.

Talvez poste seu syslog.confarquivo aqui primeiro.

Observe também que atdnão é configurável no que diz respeito à designação de um recurso de log específico, mas isso não deve ser um problema, você apenas terá que ter certeza de que a configuração do syslog está correta.

informação relacionada