Logging atd messages via syslog

6

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

Eu assumi que a linha cron no syslog se refere a toda a família de "cron, anacron, at e batch". No entanto, enquanto as ações cron e anacron parecem ser lidas, as ações "at" não são registradas. Como eu faço log de ações?

Obrigado pela sua atenção

(Adicionado) Eu gostaria de adicionar o conteúdo do meu syslog.conf apenas no caso de haver 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
    
por Ya. Perelman 04.06.2009 / 04:58

4 respostas

5

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

No entanto, as execuções de 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 ajudará muito na identificação de qual comando foi executado, por qual usuário ou qual foi sua saída / erro padrão.

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

De em (1) :

-m Send mail to the user when the job has completed even if there was no output.

    
por 04.06.2009 / 22:07
3

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

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

Em seguida, do cron, at, etc Vou chamar o script wrapper em vez disso.

Eu sei que isso é mais um trabalho do que uma solução, mas faz o trabalho.

    
por 04.06.2009 / 23:12
1

/ var / log / secure (RHEL)

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

    
por 21.09.2011 / 22:32
0

De acordo com atd(8) , ele já registra no syslog, você só precisa ter certeza de que não possui regras de syslog ruins.

Talvez postar seu arquivo syslog.conf aqui primeiro.

Observe também que atd não é configurável para designar um recurso de registro específico, mas isso não deve ser um problema, você só precisa verificar se a configuração do syslog está correta.

    
por 04.06.2009 / 06:01

Tags