Io credo che la data abbia una lunghezza fissa quindi basterebbe una semplice substr()
Cmq nel caso mi sbagliassi ecco il codice per il parsing dell'intero file
Codice PHP:
// Testo di prova
$text=<<<EOT
Mon Oct 6 13:41:45 CEST 2008: vl-commcli(2716): executing command "vmstat | tail -1 | head -1 | awk '{ print $13 " " $14 " " $15 }'"
Mon Oct 7 13:41:46 CEST 2008: vl-commcli(2717): Ciao
Mon Oct 8 13:41:47 CEST 2008: vl-commcli(2718): ciao ciao
(questa riga non viene riconosciuta e viene ignorata)
Mon Oct 9 13:41:49 CEST 2008: vl-commcli(2718): riga ancora
Mon Oct 9 13:41:49 CEST 2008: vl-commcli(2718): di piu
EOT;
$pattern='/(^(?:.+?)\d{4}):\s*(.*)/m';
preg_match_all($pattern, $text, $matches, PREG_SET_ORDER);
var_dump($matches);