Sistema Crontab ou Root Crontab

10

Sistema crontab:

/etc/crontab

Root crontab:

sudo crontab -u root -e

Qual o caminho preferido? Como todos eles executam tarefas com privilégios de administração.

Pei Z
fonte

Respostas:

15

/etc/crontab é o crontab amplo do sistema.

O formato de /etc/crontabé assim:

# m h dom mon dow user      command
*   *  *   *   *  someuser  echo 'foo'

Embora crontab -eseja por usuário, vale a pena mencionar, sem -uargumentos, que o comando crontab vai para o usuário atual crontab. Você pode fazer crontab -e -u <username>para editar um crontab de usuários específicos.

Observe que em um crontab por usuário não há um campo 'usuário'.

# m h  dom mon dow  command
*   *   *   *   *   echo 'foo'

Um aspecto dos crontabs que pode ser confuso é que a raiz também possui seu próprio crontab. por exemplo crontab -e -u root, não irá editar /etc/crontab Veja Configurando o cron .

Nas distribuições Linux, os crontabs por usuário geralmente são armazenados em: /var/spool/crontabs/<username>

Referências

/superuser/290093/difference-between-etc-crontab-and-crontab-e

Ramesh
fonte
2
Como o cron Congiruring diz: geralmente não há necessidade de criar um usuário crontab para o root. Isso é verdade? Quero dizer, a maneira padrão é editar o / etc / crontab, estou certo?
Pei Z
2
Não existe uma maneira "padrão", portanto, você pode ter os dois arquivos. Eu costumo crontab e avoit edição de raiz /etc/crontabapenas becaused estou habituado acrontab -e
phoops
7

/etc/cron.d (e seus irmãos cron.daily / semanal / mensal) é o preferido para todos os crontabs do sistema. Você não precisa tocar em / etc / crontab.

É essencial separar as entradas do cron em vários arquivos, com base em suas funcionalidades, se você planeja gerenciar ou automatizar as coisas. Os arquivos em /etc/cron.d podem ser facilmente gerenciados por pacotes ou ferramentas de gerenciamento de configuração, como puppet e chef. O crontab OTOH da raiz é praticamente impossível de manter por qualquer coisa que não seja humano.

Portanto, para resumir as coisas do sistema, você pode usar o /etc/cron.*. Se houver algo que você gostaria que o usuário root fizesse, use o crontab do root. / etc / crontab deve ser deixado intocado e gerenciado por um pacote.

V13
fonte