Foros del Web » Programando para Internet » PHP »

Leer log mediante php

Estas en el tema de Leer log mediante php en el foro de PHP en Foros del Web. Hola me gustaria leer un log que hay dentro del directorio: /var/log/alamin/ el log se llama gsgd-accounting.log se renueva cada vez que mis usuario envian ...
  #1 (permalink)  
Antiguo 28/02/2006, 08:54
 
Fecha de Ingreso: febrero-2003
Mensajes: 753
Antigüedad: 14 años, 10 meses
Puntos: 2
Leer log mediante php

Hola me gustaria leer un log que hay dentro del directorio: /var/log/alamin/ el log se llama gsgd-accounting.log se renueva cada vez que mis usuario envian un mensaje, diciendo si ha sido ok o error, me gustaria poder leer ese log para poder informar a mis usuarios de que su mensaje ha sido enviado correctamente, mediante una web que llame estado.php, aqui os pego un trozo del log para que veais la estructura:

OUT,OK,queue,localhost.localdomain 127.0.0.1,669999991,default,Mon Feb 27 14:31:42 2006
OUT,ERROR,gnokii,localhost.localdomain 127.0.0.1,669999991,default,Mon Feb 27 14:31:49 2006
OUT,ERROR,gnokii,localhost.localdomain 127.0.0.1,669999991,default,Mon Feb 27 14:36:57 2006
OUT,OK,queue,localhost.localdomain 127.0.0.1,669999994,default,Mon Feb 27 17:28:49 2006
OUT,OK,gnokii,localhost.localdomain 127.0.0.1,669999994,default,Mon Feb 27 17:29:03 2006
OUT,OK,queue,localhost.localdomain 127.0.0.1,669999995,default,Mon Feb 27 18:20:18 2006

En este log leo el estado de todos los mensajes de todos los usuarios, me gustaria hacer lo siguiente:

¿me gustaria ver el estado del mensaje del numero "669999993" empieze a leer apartir de la coma del OUT, y segun el resultado sea "ok" o "error" mandar un mensaje de error con echo, en el caso de que en el log encuentre dos lineas con el mismo numero pues muestre dos veces el echo segun corresponda.

En resumen he tratado con mysql pero con archivos no se como funciona, este log en concreto tiene permisos 660 que solo root puede leer,

gracias, espero vuestra ayuda
  #2 (permalink)  
Antiguo 28/02/2006, 11:01
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 12 años, 9 meses
Puntos: 33
De acuerdo

Para leer un archivo puedes usar la funcion file(), para la busqueda que quieres realizar puedes utilizar la funcion explode.

Ahora bien con respecto al permiso trata usando la funcion chmod().

Si tienes algun problema porfavor hazlo saber para que te podamos ayudar.
  #3 (permalink)  
Antiguo 28/02/2006, 13:26
 
Fecha de Ingreso: febrero-2003
Mensajes: 753
Antigüedad: 14 años, 10 meses
Puntos: 2
vale mirare esas funcionones, resulta que mi servidor esta localizado en /var/www/ y los log estan en /var/log/alamin ¿puedo examinar un archivo que este fuera del /www ?¿ respecto a los permisos supongo php es ejecutado como root y no habra ningun problema

saludos
  #4 (permalink)  
Antiguo 28/02/2006, 13:37
 
Fecha de Ingreso: febrero-2003
Mensajes: 753
Antigüedad: 14 años, 10 meses
Puntos: 2
pues estoy intentando poco a poco y quiero imprimer todo el log, lo hago asi:

$lines = file('/var/log/alamin/gsgd-accounting.log');
echo $lines;

y me sale el siguiente error:


Warning: file(/var/log/alamin/gsgd-accounting.log): failed to open stream: Permission denied in /var/www/prueba.php on line 2

a ver si cambiando los permisos...
  #5 (permalink)  
Antiguo 28/02/2006, 13:43
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
Cita:
Iniciado por escan_0
respecto a los permisos supongo php es ejecutado como root y no habra ningun problema
saludos
No, php es ejecutado por el usuario que corre el proceso apache, indicado en httpd.conf, típicamante nobody o www-data.
  #6 (permalink)  
Antiguo 28/02/2006, 13:44
Avatar de nosoynadie  
Fecha de Ingreso: noviembre-2005
Ubicación: dando vueltas por aquí
Mensajes: 206
Antigüedad: 12 años
Puntos: 1
Hola, dices
Cita:
Iniciado por escan_0
vale mirare esas funcionones, resulta que mi servidor esta localizado en /var/www/ y los log estan en /var/log/alamin ¿puedo examinar un archivo que este fuera del /www ?
¿es servidor es tuyo o compartido? Si es tuyo no digo nada, no sé como estan puestos los permisos de listado de directorio pero como sea compartido me da a mi que los administradores no te van a dejar listar los directorios de logs.

Cita:
Iniciado por escan_0
¿ respecto a los permisos supongo php es ejecutado como root y no habra ningun problema
saludos
Creo que eso tampoco va a ser cierto. Según lo que creo, si ejecutas php desde la web, el usuario del sistema que realmente ejecuta el proceso es el del servidor web (generalmente alguno parecido a apache, www, http, etc). En cambio, si lo ejecutas desde una consola de sistema, el que ejecuta el proceso eres tú, tu usuario. Por lo que nunca es el root el que ejecuta el php (sobre esto mejor pregunta en los foros de linux).

Sobre lo que relamente quieres hacer sonre el fichero, ¿lo puedes repetir? no me he aclarado muy bien.
__________________
http://www.nosoynadie.net/
  #7 (permalink)  
Antiguo 28/02/2006, 15:10
 
Fecha de Ingreso: febrero-2003
Mensajes: 753
Antigüedad: 14 años, 10 meses
Puntos: 2
pues me gustaria imprimir mediante echo el contenido de ese .log, si el servidor es mio y segun veo esos directorios tienen como usuario "alamin" eso signfica que no puedo poner como permisos, voy a cambiar la configuracion del progrmaa para que me guarde los los dentro de www/ a ver si ha mas suerte
  #8 (permalink)  
Antiguo 01/03/2006, 02:24
Avatar de nosoynadie  
Fecha de Ingreso: noviembre-2005
Ubicación: dando vueltas por aquí
Mensajes: 206
Antigüedad: 12 años
Puntos: 1
Cita:
Iniciado por escan_0
voy a cambiar la configuracion del progrmaa para que me guarde los los dentro de www/ a ver si ha mas suerte
esa es una opción pero asegúrate de que no te los pueden coger (sabiendo el nombre podrían descargarlos). Piensa en ponerlo 'por encima' de la carpeta web:
  • home
    • logs
    • www
    • mail

así nadie, mediante web, podrá acceder a esos logs. Para hacerlo tú desde php puedes hacer:
Código PHP:
$f file("/home/tu_usuario/logs/fichero_log"
__________________
http://www.nosoynadie.net/
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:21.