consultare un log

xer

Nuovo Utente
19 Mar 2008
1
0
0
Ciao a tutti.
Faccio una premessa, sono un nuovo registrato del forum e mi sto avvicinando
al linguaggio PHP per una piccola necessità, pertanto non sono molto ferrato in materia
ma devo dire che mi sto appassionando. :)
Spiego il contesto, scusatemi in anticipo se sono molto prolisso.

Su un server di produzione (unix) ho installato un software antispam, tale software genera un log
giornaliero, esegue pertanto una compressione dei vecchi log in gunzip e ne mantiene la loro
presenza fino al settimo giorno precedente.

Per consultare questi log, da console utilizzo solo alcuni comandi, il cat, il gzcat ed il grep.
questa è un esempio di riga di come è costruito il log:
********
Mar 19 13:33:49 fw Spamilter[26763]: Rejected 201.79.138.72 <[email protected]> <[email protected]> DNSBL 'http://www.spamhaus.org'
********

In questo caso, i campi interessanti da consultare sono i seguenti:
********
Mar 19 13:33:49 -> data ed ora dell'evento
Rejected -> intervento effettuato
(ha solo quattro variabili: Rejected, Accepted, Valid?, Spam?)
201.79.138.72 -> IP del sender
<[email protected]> -> sender
<[email protected]> -> destinatario
DNSBL 'http://www.spamhaus.org' -> causa
********
questo campo invece, non è di rilevo in quanto specifica l'hostname, il processo ed il PID.
fw Spamilter[26763]:


Pertanto, da console, se volessi consultare il log mi basta eseguire un comando come segue:

per il log giornaliero:
cat /var/log/spam.log | grep "Rejected"

per un vecchio log:
gzcat /var/log/spam.log.0.gz | grep "Rejected"

In questo modo, mi visualizza SOLO le righe REJECTED, inutile fare vedere altri esempi.
:)

Il largo utilizzo di tale comandi, mi ha spinto a creare un file di shell (.sh) che mi permette
la scelta dei campi che vi ho descritto sopra, eccolo:
******
#!/bin/sh
field1='spam.log'
echo -n "inserisci se 'Accepted' oppure 'Rejected'= " ; read field3 ;
echo -n "inserisci elemento di ricerca libero o lascia vuoto= " ; read field4 ;
echo -n "inserisci il numero di righe da visualizzare 99999 per tutte= " ; read field2 ;
/bin/cat /var/log/$field1 | grep -m$field2 "$field3" | grep "$field4" | more
*****

Per evitare un IF THEN, mi sono creato un altro script shell IDENTICO ma con il comando gzcat
per visualizzare i log compressi.


Fatta questa premessa è sorta la necessità di dovere creare un tool in PHP per visualizzare il log
giornaliero ed i logs compressi tramite browser e quì casca l'asino, non sono molto pratico.

Ho iniziato (sbagliando) creandomi il form dei campi suddetti, in modo tale da posporli al comando
in shell... ma non ho verificato se il tutto funzionava a dovere, (infatti non funzia bene), perciò
ho lasciato perdere (per adesso) il form per gli input ed ho provato dei comandi "diretti" per verificare
la fattibilità, adesso arriva la domanda. :)

Ho creato uno script shell "semplice" chiamato "test.sh", il quale non è che la mera esecuzione
del comando precedente, eccolo:
*******
#!/bin/sh
cat /var/log/spam.log | grep "Rejected"
*******
Poi, ho creato il seguente script in .php:

*******
<?php
$output = shell_exec('/usr/local/sbin/test.sh');
echo "<pre>$output</pre>";
?>
*******

Ecco la domanda: se eseguo il comando "test.sh" in console, l'output a video è:
Mar 19 13:33:49 fw Spamilter[26763]: Rejected 201.79.138.72 <[email protected]> <[email protected]> DNSBL 'http://www.spamhaus.org'


Se invece eseguo la pagina in .php l'output sul browser è:
Mar 19 13:33:49 fw Spamilter[26763]: Rejected 201.79.138.72 DNSBL 'http://www.spamhaus.org'

Praticamente, viene rimosso il testo racchiuso tra "<>", strano, perchè se tento di visualizzare il sorgente dal browser, i dati invece
ci sono, in colore violaceo, ma ci sono...

Come posso risolvere?
Grazie in anticipo!!!
:)
 
Discussioni simili
Autore Titolo Forum Risposte Data
A Come consultare dati da più siti o pagine web Programmazione 1
M Help - consultare (ed esportare) dati da un DB pubblico mySql PHP 2
trattorino [Javascript] come capire procedimento log user Javascript 2
A [PHP] Generazione Log modifiche Database PHP 5
bubino8 [PHP] Controllo Log e Modifiche Utenti PHP 5
felino [WordPress] File di log degli errori WordPress 6
H Interpretare e leggere il file log di sfc/scannow. Windows e Software 0
S [PHP] Algoritmo log in e out PHP 2
R [PHP] Software gestione interventi e creazione registro (log) PHP 1
L [WordPress] Problema Javascript nel log del browser WordPress 1
localhost.nicola File log erroe con phpmailer PHP 3
novello88 Joomla su VPS OVH: non funziona nulla ma nessun errore nel log Server Dedicati e VPS 1
P File di log personalizzato PHP 4
L LOG4J in a tomcat webapplication on a server doesn't create log file Web Server 0
Licantropo Log delle operazioni sul server Apache 0
L Form di registrazione e log in. PHP 2
I log di un router Reti LAN e Wireless 6
T [Microsoft SQL Server 2008 (SP3)] log delle transazioni è pieno Database 1
Trapano like e log PHP 5
F log pagina administrator bianca Joomla 0
S Aiuto cookie e log-in PHP 0
D log in all’apertura del browser PHP 2
S Log login area privata PHP 6
Monital Creazione file log personalizzato PHP 14
S piccola info su log utenti PHP 0
C Effettuare il log out alla chiusura del browser PHP 3
F log in php a gioco PHP 11
R Analisi dei log PHP 1
T controllare gli errori nel log di php PHP 1
S php error log PHP 1
A Log PHP 4
C php: al download di un file scrivere il log su file esterno. PHP 1
marlenka Log in Classic ASP 6
T Errore in Log In PHP 0
I Analizzare file log. ASP.NET 1
D Home Pge log-in forum HTML e CSS 0
M [PHP-MYSQL]{Auto log out} PHP 3
P HIJACK log, datemi un okkiatina Sicurezza e Virus 2
peppoweb Un bug blocca a distanza il log di Apache HTTP Server Sicurezza e Virus 0

Discussioni simili