Esta é a melhor explicação com código em PHP que encontrei até agora:
http://code.tutsplus.com/tutorials/managing-cron-jobs-with-php--net-19428
Em resumo:
Embora a sintaxe de agendamento de um novo trabalho possa parecer assustadora à primeira vista, na verdade é relativamente simples de entender quando você a decompõe. Um cron job sempre terá cinco colunas, cada uma das quais representa um 'operador' cronológico seguido pelo caminho completo e comando para executar:
* * * * * home / path / to / command / the_command.sh
Cada uma das colunas cronológicas tem uma relevância específica para a programação da tarefa. Eles são os seguintes:
Minutes represents the minutes of a given hour, 0-59 respectively.
Hours represents the hours of a given day, 0-23 respectively.
Days represents the days of a given month, 1-31 respectively.
Months represents the months of a given year, 1-12 respectively.
Day of the Week represents the day of the week, Sunday through Saturday, numerically, as 0-6 respectively.
Então, por exemplo, se alguém quisesse agendar uma tarefa para as 12h do primeiro dia de cada mês, seria algo assim:
0 0 1 * * home / path / to / command / the_command.sh
Se quiséssemos agendar uma tarefa para ser executada todos os sábados às 8h30, escreveríamos da seguinte maneira:
30 8 * * 6 home / path / to / command / the_command.sh
Existem também vários operadores que podem ser usados para personalizar ainda mais a programação:
Commas is used to create a comma separated list of values for any of the cron columns.
Dashes is used to specify a range of values.
Asterisksis used to specify 'all' or 'every' value
Visite o link para o artigo completo, ele explica:
- Qual é o formato do cronjob se você deseja inseri-lo / editá-lo manualmente.
- Como usar o PHP com a biblioteca SSH2 para se autenticar como usuário, que crontab você vai editar.
- Classe PHP completa com todos os métodos necessários para autenticação, edição e exclusão de entradas crontab.