Como alterar o nível de log do cron?

1

Substitui exec cron por exec cron -L 15 da execução sudo service cron reload , sudo service cron restart , mas nada mudou. O Cron não registra o final dos trabalhos e não registra os trabalhos com falha. Eu não tive nenhum problema no Ubuntu 14.04, mas agora eu tenho esse problema no Ubuntu 16.04. O que eu faço de errado?

Passo a passo: Primeiro eu mudei o /etc/init/cron.conf:

sudo sed -i 's|exec cron$|exec cron -L15|' /etc/init/cron.conf && sudo restart cron && cat /etc/init/cron.conf

Então agora é

$ cat /etc/init/cron.conf
# cron - regular background program processing daemon
#
# cron is a standard UNIX program that runs user-specified programs at
# periodic scheduled times

description "regular background program processing daemon"

start on runlevel [2345]
stop on runlevel [!2345]

expect fork
respawn

exec cron -L 15

Eu fiz a mesma configuração no meu Ubuntu 16.04, assim como no Ubuntu 14.04 no outro PC.

O log do Cron no Ubuntu 14.04 é o seguinte:

$  grep CRON /var/log/syslog
Aug 26 16:05:01 y1404 CRON[6825]: (y) CMD (foo # JOB_ID_1)
Aug 26 16:05:01 y1404 CRON[6824]: (CRON) error (grandchild #6825 failed with exit status 127)

Assim, você pode ver a segunda linha com a notificação de erro sobre o comando inexistente foo . Mas no Ubuntu 16.04 não há notificação de erro no log:

Aug 26 16:25:01 my CRON[7259]: (y) CMD (foo # JOB_ID_129)
    
por max5555 26.08.2017 / 12:16

1 resposta

1

A partir do Ubuntu 15.04, upstart usando /etc/init/*.conf é substituído por systemd usando arquivos de configuração em /lib/systemd/system/ e /etc/systemd/system/ . Embora um arquivo /etc/init/cron.conf ainda exista no Ubuntu 16.04, o script normalmente em uso para iniciar cron agora é /lib/systemd/system/cron.service . Se você quiser adicionar opções extras, edite este arquivo com

sudo systemctl edit --full cron

e substitua a linha

ExecStart=/usr/sbin/cron -f $EXTRA_OPTS

por e. g.

ExecStart=/usr/sbin/cron -L 15 -f $EXTRA_OPTS

Para recarregar a configuração, execute sudo systemctl restart cron ou apenas reinicialize. Você pode testar com qual comando exato um serviço foi iniciado usando systemctl status , e. g. para cron (veja a última linha):

> systemctl status cron
● cron.service - Regular background program processing daemon
   Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: enabled)
   Active: active (running) since So 2017-08-27 09:56:18 CEST; 1h 15min ago
     Docs: man:cron(8)
 Main PID: 26021 (cron)
   CGroup: /system.slice/cron.service
           └─26021 /usr/sbin/cron -f
    
por dessert 27.08.2017 / 11:18