Pode ser útil observar que os trabalhos em um crontab pessoal ( crontab -e
) são sempre executados como seus proprietários, onde /etc/crontab
contém um <user>
campo obrigatório adicional , permitindo que um administrador configure o trabalho para ser executado como um usuário não raiz.
Editar o crontab do sistema ou configurar um crontab pessoal para root provavelmente é um pouco mais portátil, não específico para determinadas distribuições Linux e sem dúvida mais conveniente para uma pessoa manter, com todos os trabalhos em um único arquivo, mas:
Pessoalmente, sou a favor de uma terceira opção : para cada tarefa agendada, solte
- um arquivo
/etc/cron.d/
com um trecho de cron
- um executável (script) no
/etc/cron.[hourly |daily |weekly |monthly]
diretório relevante .
É mais fácil criar scripts (você pode simplesmente criar / sobrescrever / excluir esses arquivos e não precisa mexer no conteúdo de um único arquivo crontab) e isso funciona bem com as ferramentas de gerenciamento de configuração e é isso que os gerenciadores de pacotes já estão fazendo assim mesmo.
Os trabalhos / scripts /etc/cron.[hourly |daily |weekly |monthly]
são sempre executados como raiz, onde os trechos do cron /etc/cron.d/
permitem definir um agendamento personalizado e também executar como um usuário diferente com o mesmo <user>
campo obrigatório encontrado em /etc/crontab
.