crontab permette appunto di eseguire un comando ogni tot tempo, opportunatamente configurato secondo una particolare sintassi in «/etc/crontab». l'utente che lo lancia mi pare non deve essere lo stesso, ovviamente devi avere i diritti di root per modificare qualunque file al di fuori della home personale.
se vuoi lanciare un programma da console stile cron, scrivi 'watch -n30 programma' (aggiorna ogni 30 secondi)
per lo script bash non cambia nulla
per il php invece: un codice che deve eseguire un server (apache) su richiesta di un client. Apache può eseguire un codice da shell? in questo caso il client è la shell. Boh, non lo so.