Questa è la migliore spiegazione con il codice in PHP che ho trovato finora:
http://code.tutsplus.com/tutorials/managing-cron-jobs-with-php--net-19428
In breve:
Sebbene la sintassi della pianificazione di un nuovo lavoro possa sembrare scoraggiante a prima vista, in realtà è relativamente semplice da capire una volta scomposta. Un cron job avrà sempre cinque colonne ciascuna delle quali rappresenta un "operatore" cronologico seguito dal percorso completo e dal comando da eseguire:
* * * * * home / percorso / a / comando / il_comando.sh
Ciascuna delle colonne cronologiche ha una rilevanza specifica per la pianificazione dell'attività. Sono i seguenti:
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.

Quindi, ad esempio, se si volesse programmare un'attività per le 12 del primo giorno di ogni mese, sarebbe simile a questo:
0 0 1 * * home / percorso / a / comando / il_comando.sh
Se volessimo programmare un'attività da eseguire ogni sabato alle 8:30, la scriveremmo come segue:
30 8 * * 6 home / percorso / a / comando / il_comando.sh
Ci sono anche una serie di operatori che possono essere utilizzati per personalizzare ulteriormente la pianificazione:
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
Visita il link per l'articolo completo, spiega:
- Qual è il formato del cronjob se vuoi inserirlo / modificarlo manualmente.
- Come usare PHP con la libreria SSH2 per autenticare come utente, quale crontab stai per modificare.
- Classe PHP completa con tutti i metodi necessari per l'autenticazione, la modifica e l'eliminazione delle voci crontab.