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.