Cron parou de logar em /var/log/cron.log

0

Há um mês, configurei o cron para logar em /var/log/cron.log , modificando /etc/rsyslog.d/50-default.conf . O registro em log funcionou muito bem até que eu alterei as permissões em /var/log (facilitando as restrições de permissão) e forcei o logrotate a girar os logs executando logrotate --force /etc/rsyslog.d/50-default.conf . Desde então, o cron parece ter parado o registro. Não há mais /var/log/cron.log . Eu executei sudo touch /var/log/cron.log para criá-lo, mas ele permaneceu 0 bytes desde.

Mais detalhes sobre o que fiz com as permissões:

Corri sudo chmod 775 /var/log e, posteriormente, alterei as permissões novamente com sudo chmod 755 /var/log . Todos os outros serviços parecem estar registrando corretamente, e as tarefas cron estão realmente em execução (verificadas com ps aux | grep rsync , já que eu só executo o rsync via cron).

Eu não tinha certeza dos direitos de acesso de usuário e grupo corretos para cron.log , então tentei alterá-lo para syslog:adm como a maioria dos outros arquivos de log, mas isso não ajudou, então eu mudei de volta para root:root ,

Permissões atuais no cron.log: -rwxr-xr-x 1 root root 0 Apr 27 16:34 cron.log

Não tenho certeza de onde ir a partir daqui. Eu sei que eu posso fazer o cron log em qualquer arquivo que eu queira (adicionando >> /path/to/logfile ao final das entradas de trabalhos do cron ou editando /etc/rsyslog.d/50-default.conf ), mas para consistência, eu preferiria continuar registrando no cron.log. Eu suponho que eu poderia adicionar >> /var/log/cron.log ao final de cada entrada do cron, mas isso parece um pouco hacky para mim.

EDIT: Conforme o meu comentário abaixo, mudei a localização do log para /tmp/cron.log e o registro foi retomado. No começo, eu supus que isso implicava que as permissões de pasta ou arquivo estavam erradas. No entanto, eu os verifiquei em outra máquina que executa a mesma distro e as permissões de pasta estavam corretas. As permissões de arquivo não eram restritivas o suficiente, as permissões corretas podem ser definidas com sudo chmod 640 cron.log .

Como teste, apaguei o cron.log vazio e ele nunca foi recriado. Eu modifiquei o rsyslogd config para que ele registrasse no crond.log, mas o arquivo nunca foi criado.

    
por Andy Forceno 28.04.2016 / 17:24

1 resposta

0

Por que você não tentou editar /etc/rsyslog.conf ? Como você sabe, você pode forçar o rsyslog a registrar o serviço que não possui logger específico. Por isso, sugiro ler man rsyslog.conf para saber como fazer o serviço de criação de log e editar o serviço para enviar logs aqui (edite em algum lugar como /etc/init.d/rsyslog para configurar a seção de log).

    
por 28.04.2016 / 17:38