hinom 5 Denunciar post Postado Dezembro 3, 2013 Escopo de um agendamento CRON minuto hora dia mês dia_da_semana php /caminho/completo/do/arquivo.php *Para assegurar-se, especifique o caminho completo do binário do PHP.Geralmente no path "/usr/sbin/php"Um exemplo simples, agendando para executar as 13 horas e 0 minutos do dia 3 de Dezembro: 00 13 03 12 * /usr/sbin/php /caminho/completo/do/arquivo.php [table=.] [tr][td]minuto[/td][td]hora[/td][td]dia[/td][td]mês[/td][td]dia da semana[/td][/tr][tr][td]00[/td][td]13[/td][td]03[/td][td]12[/td][td]*[/td][/tr][/table] /** * Gera o arquivo contendo o shell script */ $script_path = '/caminho/completo/do/arquivo.php'; $php_bin = '/usr/sbin/php'; $file = '/caminho/do/arquivo/processos.sh'; $dt['i'] = '00'; // minute $dt['H'] = '13'; // hour $dt['d'] = '03'; // day $dt['m'] = '12'; // month $dt['w'] = '*'; // week $content = implode( ' ', $dt ) . ' ' . $php_bin . ' ' . $script_path; file_put_contents( $file, $content ); if( !file_exists( $file ) ) { throw new \Exception('Oooops.. "' . $file . '" not found'); } /** * Adiciona o script ao crontab */ exec('crontab ' . $file, $output, $return); if($return === 0) { //echo 'Cron Successful'; }else{ // Aqui vc debuga algum erro. } [*Notas]Permissões de execuçãoO arquivo processos.php, ou seja, o arquivo que executará a criação do agendamento CRONTAB, deve ser executado sob um usuário que possua permissões de execução de comandos shell.Para verificar qual usuário executa o arquivo "processos.php", faça um simples debug: echo exec('whoami'); Retornará algo como apache2handle, apache, apache2, wwwuser ou coisas do tipo.Caso o usuário não possua permissões, verifique com o administrador do servidor.Periodicidade e remoção do agendamentoAo completar o processo, remova-o do agendamento caso não necessitar que seja executado novamente sob as regras agendadas. define( 'ENV_OWNER' , 'webuser' ); /** * Workaround to avoid script delete root jobs if someone executes the script under root privilegies */ $user = ( exec('whoami') == 'root' ) ? ' -u ' . ENV_OWNER : ''; shell_exec( 'crontab -r' . $user); // remove all jobs for current or specified user Ferramentas úteis:Geradores de sintaxes CRON:http://www.generateit.net/http://www.easycron.com/generator/cronjobhttp://bit.ly/18e0mItDocumentação PHPhttp://php.net/implodehttp://php.net/exechttp://php.net/shell_exechttp://php.net/implodehttp://php.net/file_put_contents Compartilhar este post Link para o post Compartilhar em outros sites
Augusto Santos 3 Denunciar post Postado Dezembro 15, 2013 Boa noite, Achei o seu post sobre agendamento Cron, estou trabalhando em um Script minutos atrás postei um tópico sobre esse assunto, por favor entre no link e veja o que postei e se você pode me ajudar: http://forum.imasters.com.br/topic/513468-agendamento-de-tarefa-crontab/ Obrigado! Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Dezembro 15, 2013 #2 Sem querer ser grosseiro, mas isso aqui não é suporte técnico. Se liga malandro.. Se vc tiver algo útil a acrescentar, ao artigo, será bem vindo. Compartilhar este post Link para o post Compartilhar em outros sites
Augusto Santos 3 Denunciar post Postado Dezembro 16, 2013 #2 Sem querer ser grosseiro, mas isso aqui não é suporte técnico. Se liga malandro.. Se vc tiver algo útil a acrescentar, ao artigo, será bem vindo. Boa tarde, Eu sei que o forum não é suporte técnico, o imaster é destinado a pessoas que tem conhecimento na área e tem dúvidas. Postei um assunto que tenho dúvidas e sem querer achei o seu post e vi que você tem um grande conhecimento no tópico. Eu não sou malandro estou apenas em busca de conhecimento, se você não gostou tudo bem, respeito o seu ponto de vista, mas então era só você não responder. Compartilhar este post Link para o post Compartilhar em outros sites