CRON e CRONTAB: um pouco de teoria, uso e exemplos

"Cron" ou "Cron job" são tarefas agendadas para execução automática. Veremos aqui como agendar tarefas no Linux e quais os recursos disponíveis no Linux para ajudar nesse objetivo.

[ Hits: 37.780 ]

Por: Francisco Jose Lopes em 11/08/2017 | Blog: http://bladochico.qaplaweb.com.br


Pegadinhas, ou "coisas para verificar" quando em apuros



i. Quando o cronjob é executado a partir da crontab de usuários, ele é executado como esse usuário. No entanto, ele não agrega, não considera, nenhum arquivo no diretório inicial dos usuários, como .cshrc ou .bashrc ou qualquer outro arquivo. Se precisar que o cron carregue (leia), qualquer arquivo de configuração de ambiente adicional para seu script, você deve fazê-lo a partir do próprio script que está sendo chamado. Portanto, para definir caminhos, processar arquivos, configurar variáveis de ambiente, e etc. deve-se tomar as devidas medidas.

ii. Se a conta de usuário tiver uma crontab, mas nenhum shell padrão utilizável em /etc/passwd, o cronjob não será executado. Você terá que designar à conta um shell para que a crontab seja executada.

iii. Se o cronjob não estiver executando, verifique se o daemon cron está sendo executado. Então lembre-se de verificar os arquivos /etc/cron.allow e /etc/cron.deny. Se existirem, o usuário que deseja executar trabalhos deve estar em /etc/cron.allow. Você também pode querer verificar se o arquivo /etc/security/access.conf existe. Pode ser necessário adicionar o usuário lá.

iv. A crontab não é analisada para substituições ambientais. Você não pode usar coisas como $PATH, $HOME ou ~/sbin. Você pode definir coisas como 'MAILTO =' ou 'PATH =' e outras variáveis de ambiente que o shell /bin/sh utilize.

v. Cron não lida com segundos, logo você não pode ter tarefas agendadas em qualquer período de tempo lidando com segundos. Como um cronjob disparando a cada 30 segundos.

vi. Você não pode usar o símbolo % na área de comando (declaração de comando). Ele precisará ser escapado e, se usado com substituição de comando, como o comando date, você pode colocá-lo entre crases. Ex.: `date +\%Y-\%m-\%d`. Ou utilize a substituição do comando bash $() (desde que declare SHELL=/bin/bash).

vii. Cuidado com 'dia do mês' e 'dia da semana' juntos. Os campos do 'dia do mês e 'dia da semana' com restrições (não uso do *) tornam esta, uma condição "or" não uma condição "and". Quando qualquer um dos campos for verdadeiro, o cronjob será executado.

Sites úteis e Referências

Sites cron úteis:
Referências:
  • Páginas do man: cron(8); crontab(1); crontab(5).
  • Páginas info: cron; crontab.
  • NEMETH, Evi; SNYDER, Garth; HEIN, Trent R. Manual Completo do Linux.São Paulo : Pearson Makron Books, 2004.
  • Pantz.org Technical Reference Site. Cron and Crontab use and examples. [S.l.]: pantz.org, 2015. Disponível em: <https://www.pantz.org/software/cron/croninfo.html>. Acesso em 23-junho-2017.

Página anterior    

Páginas do artigo
   1. O cron
   2. O comando crontab
   3. Formato de linha da tabela cron (ou crontab)
   4. Exemplos
   5. Pegadinhas, ou "coisas para verificar" quando em apuros
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Bind9 em chroot no Debian Lenny

Enlightenment DR17 - A evolução

Autenticando e protegendo diretórios no Apache

Cluster Beowulf

Montar dispositivos com haldaemon em usuários NIS

  
Comentários
[1] Comentário enviado por demoncyber em 24/08/2017 - 10:33h

Olá,

Parabéns pelo texto, bem redigido e completo sobre o tema, digo isto com referência de caso por ter lido vários livros sobre GNU/Linux, e a questão das muitas referências só elucidam a qualidade do trabalho. Passei o texto para alguns colegas que estão iniciando e não conhecem com profundidade no assunto.

Espero que venham novos bons textos.

Abraços

[2] Comentário enviado por cleysinhonv em 05/09/2017 - 10:53h

Um artigo bem escrito e muito útil. Tive muito sucesso usando cron em sistemas de data warehouse. Uma ferramenta simples e poderosa.

[3] Comentário enviado por QAPLA em 22/09/2017 - 11:21h


[1] Comentário enviado por demoncyber em 24/08/2017 - 10:33h

Olá,

Parabéns pelo texto, bem redigido e completo sobre o tema, digo isto com referência de caso por ter lido vários livros sobre GNU/Linux, e a questão das muitas referências só elucidam a qualidade do trabalho. Passei o texto para alguns colegas que estão iniciando e não conhecem com profundidade no assunto.

Espero que venham novos bons textos.

Abraços


Obrigado pelas palavras, são grande incentivo para continuar e saber a direção para caminhar. Espero conseguir contribuir muito mais em breve.

Forte abraço

[4] Comentário enviado por QAPLA em 22/09/2017 - 11:25h


[2] Comentário enviado por cleysinhonv em 05/09/2017 - 10:53h

Um artigo bem escrito e muito útil. Tive muito sucesso usando cron em sistemas de data warehouse. Uma ferramenta simples e poderosa.


Obrigado, realmente CRON vem sendo o esteio de nossa produção em escala na empresa.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts