2010-06-18 6 views
6

Mañana todos,ejecutando un script php a través de cron, ¿cómo puedo registrar cualquier salida?

Tengo un script php que he estado probando, y parece funcionar bien cuando lo llamo desde la línea de comandos.

Ahora quiero automatizarlo a través de cron, ¿cómo puedo obtener los resultados que he puesto en el archivo como puntos de control en un archivo de registro?

por ejemplo, tengo algunos comandos de eco simples en el guión y me gustaría que la salida a aparecer dentro de un archivo de registro existente (de modo que consiga de girar de forma automática, etc.)

gracias,

Greg

+0

Los crones basados ​​en UNIX enviarán por correo electrónico la (s) salida (s) del trabajo al usuario con cuyo ID se está ejecutando el trabajo. Entonces, si no quiere meterse con la redirección de salida como se sugiere en las otras respuestas, podría simplemente mirar esos correos electrónicos automáticos. –

Respuesta

6

comando cron para ejecutar:

/path/to/php -f /path/to/script.php >> /path/to/logfile.txt 
+0

'>>' para anexar al archivo de registro. –

+0

gracias - si uso/var/log/cron como archivo de registro, ¿está bien? De esta forma se archivará automáticamente, se recortará, etc. – kitenski

0

intentar algo como esto:

<?php 
function logToFile($filename, $msg) 
{ 
    $fd = fopen($filename, "a"); 
    $str = "[" . date("Y/m/d h:i:s", mktime()) . "] " . $msg; 
    fwrite($fd, $str . "\n"); 
    fclose($fd); 
} 

function logToMail($msg, $address) 
{ 
    $str = "[" . date("Y/m/d h:i:s", mktime()) . "] " . $msg; 
    mail($address, "Log message", $str); 
} 

function logToDB($msg, $type) 
{ 
    // open connection to database 
    $connection = mysql_connect("localhost", "joe", "pass") or die ("Unable to connect!"); 
    mysql_select_db("logdb") or die ("Unable to select database!"); 

    // formulate and execute query 
    $query = "INSERT INTO log (date, type, msg) VALUES(NOW(), '$type', '$msg')"; 
    mysql_query($query) or die ("Error in query: $query. " .mysql_error()); 

    // close connection 
    mysql_close($connection); 
} 
?> 
+0

El problema aquí es que si el script php falla por algún motivo, el método de registro nunca se ejecutará. La respuesta aceptada anteriormente enviará cualquier salida de script al archivo de registro. –

Cuestiones relacionadas