Qual é a principal diferença entre o diretório cron.d (como em /etc/cron.d/
) e crontab
?
Tanto quanto eu entendo, pode-se criar um arquivo como /etc/cron.d/my_non_crontab_cronjobs
e colocar o que quiser dentro dele, assim como você os colocaria crontab
via crontab -e
.
Então, qual é a principal diferença entre os dois?
As diferenças estão documentadas em detalhes na página de
cron(8)
manual do Debian. A principal diferença é que/etc/cron.d
é preenchido com arquivos separados, enquantocrontab
gerencia um arquivo por usuário; portanto, é mais fácil gerenciar o conteúdo do/etc/cron.d
uso de scripts (para instalação e atualizações automatizadas) e mais fácil de gerenciarcrontab
usando um editor (na verdade, para usuários finais).Outras diferenças importantes são que nem todas as distribuições suportam
/etc/cron.d
, e que os arquivos/etc/cron.d
precisam atender a um certo número de requisitos (além de serem cron jobs válidos): eles devem pertencer ao root e devem estar em conformidade comrun-parts
' convenções de nomenclatura ( sem pontos , apenas letras, dígitos, sublinhados e hífens).Se você está pensando em usar
/etc/cron.d
, geralmente vale a pena considerar um dos/etc/cron.hourly
,/etc/cron.daily
,/etc/cron.weekly
ou/etc/cron.monthly
.Eu diria que a principal diferença é a óbvia:
/etc/crontab
e/etc/cron.d
não são modificáveis por usuários comuns, enquanto os crontabs por usuário nas edições/var/spool/cron
dacrontab
ferramenta são. (Sujeito acron.allow
ecron.deny
, é claro.) É claro que em um sistema no qual você é o administrador, você pode usar qualquer um deles. Em um sistema compartilhado, os usuários regulares podem usar apenas um.Relacionado a isso está o campo extra nos arquivos de todo o sistema, o nome de usuário sob o qual o trabalho é executado.