Quero verificar se meu trabalho cron está em execução e a que horas. Acredito que exista um registro para meus sudo crontab -e
trabalhos, mas onde?
Pesquisei no google e encontrei recomendações para procurar /var/log
(nas quais não vejo nada com 'cron' no nome) e editar o arquivo /etc/syslog.conf
que também não tenho.
/var/log/
diretório Verifique cron.log ou equivalente.grep -i CRON
pesquisar case-insensitiveVocê pode criar um arquivo cron.log para conter apenas as entradas CRON que aparecem no syslog. Observe que os trabalhos CRON ainda aparecerão no syslog se você seguir as seguintes instruções.
Abra o arquivo
Encontre a linha que começa com:
remova o comentário dessa linha, salve o arquivo e reinicie o rsyslog:
Agora você deve ver um arquivo de log cron aqui:
A atividade do Cron agora será registrada neste arquivo (além do syslog).
Observe que no cron.log você verá entradas para quando o cron executou scripts em /etc/cron.hourly, cron.daily etc. - por exemplo, algo como:
No entanto, você não verá mais informações sobre quais scripts foram realmente executados no /etc/cron.daily ou no /etc/cron.hourly, a menos que esses scripts direcionem a saída para o cron.log (ou talvez para outro arquivo de log).
Se você deseja verificar se um crontab está em execução e não precisa procurá-lo no cron.log ou syslog, crie um crontab que redirecione a saída para um arquivo de log de sua escolha - algo como:
Isso redirecionará todas as saídas e erros padrão que podem ser produzidos pelo script que é executado no arquivo de log especificado.
fonte
*.*;auth,authpriv.none -/var/log/syslog
para*.*;auth,authpriv.none,cron.none -/var/log/syslog
.2>&1
significa?Às vezes, pode ser útil monitorá-lo continuamente, nesse caso:
fonte
-F
, o que seguirá o arquivo através das alterações de nome, para que, quando ele for truncado / movido para, por exemplo/var/log/syslog.1.gz
, você ainda esteja seguindo o/var/log/syslog
arquivo atual . Per o homem docs, este é o mesmo que corrertail xxxx -f --retry
Você também pode direcionar a saída dos cronjobs individuais para seus próprios logs para melhor legibilidade, basta anexar a saída da data em algum lugar.
fonte
Se você
systemd
instalou em seu sistema, poderá exibir o log de tarefas cron usando ojournalctl
comandoPor exemplo, no meu Ubuntu 17.10:
fonte
Essa é uma pergunta muito antiga, mas nenhuma dessas respostas parece satisfatória.
Primeiro, faça seu trabalho do cron ser executado a cada minuto e, em seguida, execute o cron como não-daemon (temporariamente, basta matar qualquer crond que já tenha sido iniciado) com o log de teste:
crond -nx test
E veja o log da execução do seu programa fluindo através do seu terminal.
fonte
No command 'crond' found, did you mean: Command 'cron' from package 'cron' (main)
É
/var/log/syslog
por padrão.Mas pode ser configurado para criar um cron.log separado, o que é mais útil.
Estas perguntas e respostas descrevem o processo:
16.04: Como faço para o cron criar o cron.log e monitorá-lo em tempo real?
Também nesta resposta estão as instruções para criar um
wcron
comando que o exibe quase em tempo real. Além disso, ele vincula a outra resposta,Como alterar o nível do log do cron?
que mostra como alterar o nível de log para incluir mais do que apenas o início dos trabalhos - o nível 15 também mostrará erros e a hora de término.
fonte
Fedoar 29 e RHEL 7
Do
journalctl
manual:fonte
Você pode redirecionar a saída do cron para um arquivo tmp
Tais como: 00 11 07 * * / bin / bash /home/ubuntu/command.sh> / tmp / output 2> & 1
Erro e saída normal, ambos serão redirecionados para o mesmo arquivo
fonte
Como mencionado anteriormente, os trabalhos cron são registrados no
/var/log/syslog
Você pode canalizar o syslog para grep e filtrar os logs CRON, como este
Você pode pesquisar seus logs do crontab, como este
Você pode pesquisar nos registros do histórico do crontab armazenados em arquivos gz, como este
É sempre bom ter um mecanismo de registro; você pode configurar rapidamente o ELK para seus servidores; também pode experimentar o logz .
fonte