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.