|
|
|
![]() |
|
Strumenti |
![]() |
#1 | |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
Riordinare righe di un file.log è possibile?
Il file di log contiene tipiche righe di log di un server:
Quote:
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. |
|
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
Eurika!
il SORT.
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Oct 2008
Messaggi: 157
|
Salve, ho una necessità "simile" ho un log di apache che dovrei far analizzare da un programma, vorrei però eliminare le connessioni loggate da un determinato indirizzo IP, fino ad ora ho sempre dovuto analizzare manualmente il log ed eliminare quello che non interessava manualmente, ora però devo analizzare un log di 3 mesi, una roba da 10mb, c'è qualche comando che mi permetta di cancellare completamente le righe in questione?
Esempio delle righe che vorrei cancellare: 127.0.0.1 - - [02/Oct/2008:16:02:22 +0200] "OPTIONS * HTTP/1.0" 200 - "-" "Apache/2.2.9 (Debian) PHP/5.2.6-3 with Suhosin-Patch (internal dummy connection)" 127.0.0.1 - - [02/Oct/2008:16:02:23 +0200] "OPTIONS * HTTP/1.0" 200 - "-" "Apache/2.2.9 (Debian) PHP/5.2.6-3 with Suhosin-Patch (internal dummy connection)" Poi ve ne sono altre, di accesso al sito web da rete locale, da eliminare anch'esse. Grazie in anticipo ![]() |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
Usa il comando grep di Linux per prendere solo quello che ti interessa e riversane il contenuto in un file.
Dopo di che fai la stessa cosa col sort. Linux shell rulez.
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. |
![]() |
![]() |
![]() |
#5 |
Member
Iscritto dal: Oct 2008
Messaggi: 157
|
Più che un inclusione di quel che mi interessa mi servirebbe escludere quelle righe, con grep è possibile tagliare e incollare le righe più su dal file originario ad un file creato ad hoc? In questo caso in access.log mi rimarrebbero tutti gli indirizzi esclusi quelli che ho eliminato, giusto?
Purtroppo non sono esperto di grep, un aiutino? ![]() |
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Jan 2001
Messaggi: 2289
|
Quote:
-v, --invert-match Invert the sense of matching, to select non-matching lines. fai un cat del file con i vari grep -v redirectato in un altro file ancora... esempio: cat access.log | grep -v "tuariga" | grep -v "altrariga" > cleanaccess.log ciao
__________________
FreeBSD, OpenBSD and GNU/Linux User Free Software Foundation Associate Member proudly member of poco-serio™ team! nella foto son quello simpatico... l'altro e' |Stan| |
|
![]() |
![]() |
![]() |
#7 |
Member
Iscritto dal: Oct 2008
Messaggi: 157
|
Wow grazie, perfetto!
Ho dato un: cat access.log | grep -v "128.168.0.2" > cleanaccess.log E funzionato alla perfezione, molte grazie ancora ![]() |
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Jan 2001
Messaggi: 2289
|
Quote:
![]() happy scripting ![]()
__________________
FreeBSD, OpenBSD and GNU/Linux User Free Software Foundation Associate Member proudly member of poco-serio™ team! nella foto son quello simpatico... l'altro e' |Stan| |
|
![]() |
![]() |
![]() |
#9 | |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
Sempre + difficile!
... e per cancellare i primi N carateri di una riga del file di log? [NB] Non sono statici in quanto c'è una dataime ... forse usando le espressioni regolari? Quote:
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. Ultima modifica di Matrixbob : 29-10-2008 alle 10:55. |
|
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Jan 2001
Messaggi: 2289
|
puoi usare cut oppure awk... l'importante e' avere un elemento fisso su cui fare lo split...
__________________
FreeBSD, OpenBSD and GNU/Linux User Free Software Foundation Associate Member proudly member of poco-serio™ team! nella foto son quello simpatico... l'altro e' |Stan| |
![]() |
![]() |
![]() |
#11 | ||||||
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
Multifiltro in cascata
Quote:
Quote:
Quote:
Quote:
Quote:
So che si poteva fare utilizzando Find + Grep ... qualcuno sa comporre questo macro comando? Ad esempio: Quote:
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. Ultima modifica di Matrixbob : 14-11-2008 alle 14:45. |
||||||
![]() |
![]() |
![]() |
#12 |
Member
Iscritto dal: Oct 2008
Messaggi: 157
|
visto che è stato riuppato, ho sempre dato il comando:
cat access.log | grep -v "128.168.0.2" > cleanaccess.log se volessi cancellare altre righe, mettiamo l'ip 127.0.0.1, come faccio? cat access.log | grep -v "(128.168.0.2|127.0.0.1)" > cleanaccess.log E' giusto? Se ne voglio aggiungere un terzo? un altro | seguito dall'indirizzo? No sbagliato, la sintassi giusta è: cat access.log | grep -v "192.168.0.2" | grep -v "127.0.0.1" | grep -v "192.168.0.3" > access2.log Ultima modifica di Nemo1985 : 13-11-2008 alle 17:26. |
![]() |
![]() |
![]() |
#13 | |
Senior Member
Iscritto dal: Oct 2003
Città: La Spezia
Messaggi: 962
|
Quote:
cat access.log | egrep -v '192.168.0.2|127.0.0.1|192.168.0.3' > access2.log by
__________________
![]() ![]() Gigabyte ga-p55-ud6 | Intel i7 860 | 2x2gb Corsair xms3 | Adaptec 2410sa | raid1 barracuda 500gb 7200.12 | Intel x25-m 80gb G2 | ATI radeon 4890 | tutto in downclock (non ho parenti all'enel) |
|
![]() |
![]() |
![]() |
#14 |
Member
Iscritto dal: Oct 2008
Messaggi: 157
|
Avevo provato ma non funzionava, ora riprovo, grazie
![]() Perfetto, funziona! ![]() |
![]() |
![]() |
![]() |
#15 |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
... ma della mia:
Codice:
find /file/system/ -exec grep -l "stringa" {} \; > file_risultato.txt Funziona? Avete modo di provarla?
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. Ultima modifica di Matrixbob : 14-11-2008 alle 15:24. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 04:06.