processados mais de uma vez indevidamente.Para resolver esse tipo de inconveniente, voce pode: Ajustar a periodicidade do script a um valor mais apropriado. Ao iniciar a execucao do script, checar se existe alguma outra instancia do script que ainda nao terminou. Caso exista, aborta a execucao corrente. Utilizar transacoes do banco de dados para garantir que o item selecionado nao seja obtido por nenhum outro script. Isso e possivel definindo o tipo de isolamento de transacoes no BD.Falhas/Excecoes nao previstas ao longo da execucaoComo os scripts de cron normalmente possuem um loop principal que processa itens, pode ocorrer alguma falha ou excecao com o processamento de determinado item. Se isso nao for tratado adequadamente, todo o script pode ser abortado, entao o funcionamento do script e comprometido.Para resolver isso, certifique-se que todos os pontos de excecao foram devidamente capturados (try/catch), para que alguma atitude seja tomada em cada caso, nem que seja armazenar um log de erro.Recursos de uso comumEm scripts de cron que realizam algum processamento sobre um conjunto de itens, e comum a utilizacao de uma library ("service", "recurso", ou seja como queira falar) para auxiliar o processamento de cada item a cada iteracao.Uma preocupacao a ser tomada e garantir que o recurso usado como servico esteja adequadamente configurado a cada iteracao, para que as configuracoes usadas numa iteracao comprometa o comportamento de uma iteracao futura.Por exemplo, se voce constroi um unico resource de cURL e a cada iteracao do loop suas configuracoes sao alteradas para realizar uma requisicao HTTP bem especifica, entao e preciso estar atento para que tudo que tenha sido "setado" esteja de acordo com o esperado nas requisicoes seguintes. Isso tambem ocorre, por exemplo, com um objeto que serve de servico para envio de e-mails que, a cada iteracao, pode precisar modificar o destinatario, conteudo, anexos, etc.Nestes casos, existem duas abordagens: ou voce redefine todas configuracoes do recurso a cada iteracao (recriando o recurso ou resetando suas configuracoes), ou entao prepara o script para que adapte apenas as configuracoes necessarias a cada iteracao.Quem executaUm item um pouco incomum, mas que pode causar alguns problemas em determinadas situacoes e qual usuario foi especificado para ser dono do processo executado no cron.Isso deve ser avaliado principalmente quanto a possibilidade de leitura/escrita de arquivos em locais previamente permissionados com algumas restricoes.A especificacao do usuario que executa o cron e feita logo apos a especificacao do horario (periodicidade) do script de cron.Variaveis de AmbienteOutro item pouco comum e a visibilidade de variaveis de ambiente pelo script de cron. Note que quando voce executa um script com seu usuario no Shell, voce provavelmente carregou varias variaveis de ambiente. Portanto, se o script consome alguma destas variaveis, e preciso que o cron tambem defina valores antes de serem executados.Para isso, basta especificar o valor das variaveis de ambiente logo no inicio do /etc/crontab, conforme exemplo:LANG=pt_BR.UTF-8LC_ALL=pt_BR.UTF-80 8 * * * root /usr/bin/php /caminho/do/script.phpGere logsPor fim, mas nao menos importante, destaca-se a geracao de logs para scripts de cron. Afinal, como sao scripts executados em segundo plano, ninguem sabe o que ele esta fazendo