Article View: es.comp.os.linux.programacion
Article #1696Re: Script tcpdump
From: Jesús M. NAVARRO
Date: Tue, 30 Aug 2005 02:24
Date: Tue, 30 Aug 2005 02:24
77 lines
3539 bytes
3539 bytes
Hola, Kunael:
Kunael escribi� en es.comp.os.linux.programacion:
> Saludos a todo2,
>
> El objetivo es crear un script muy simple que sniffe el tr�fico de red;
> l�gicamente usar� tcpdump. Una vez realizado el script controlar� su
> ejecuci�n mediante cron.
>
> El problema que tengo es que, suponiendo que el proceso se mate a
> conciencia (por lo que sea) o que se reinicie la m�quina, no interesa que
> se machaque el log, sino que cree otro nombrado consecutivamente.
Quiz� sea matar moscas a ca�onazos. Parte de la elegancia de Linux es
disponer de peque�as herramientas que hagan bien su trabajo, y con
capacidad para "trabar" unas con otras.
>
> Lo que tengo hasta ahora es:
>
> #!/bin/bash
>
> FECHA=$(date +%m-%d-%Y)
> CONTADOR=0
> LOG=/var/log/tcpdump/tcpdump-$FECHA-$CONTADOR.log
>
> if [ -e $LOG ]; then
>
>
> let CONTADOR=CONTADOR+1
> tcpdump -i eth0 -q -w $LOG
>
> else
>
> tcpdump -i eth0 -q -w $LOG
> fi
>
> exit 0
Por supuesto, esto no funciona, puesto que if s�lo se verifica una vez.
Podr�as usar, por ejemplo, un bucle while para encontrar la �ltima
aparici�n de LOG+n, y asegurarte de que tu fichero es siempre +1 sobre el
�ltimo existente.
La verdad es que no se si la opci�n -w de tcpdump sobreescribe o a�ade, en
caso de que el fichero de log ya exista, pero da lo mismo. Lo que yo
har�a, dado lo que digo el primer p�rrafo, es escribir SIEMPRE al fichero
(por ejemplo) /var/log/tcpdump/tcpdump.log y dejar que logrotate se haga
cargo de generar los ficheros "antiguos" con los nombres adecuados. �Para
qu� vas a reinventar la rueda?
As�, si -w no reescribe, te bastar� `tcpdump -w $LOG`, y si tcpdump
reescribe, env�alo todo a la salida est�ndar y redir�gelo desde all�:
`tcpdump -w - >> $LOG`
Luego, te bastar� crear el fichero adecuado para logrotate; algo como (esto
mantendr�a los logs de las �ltimas cuatro semanas en que el script estuvo
en funcionamiento; por supuesto, man logrotate de dar� m�s informaci�n)...
/var/log/tcpdump/tcpdump.log {
rotate 4
weekly
compress
delaycompress
missingok
notifempty
postrotate
/etc/init.d/miscriptparatcpdump restart
endscript
}
Para saber c�mo escribir un script de inicio de servicio, basta con mirar el
de alguno sencillito que ya tengas instalado (es b�sicamente tu script, con
un switch para saber con qu� par�metro ha sido llamado).
--
SALUD,
Jes�
Technical Details
Message-ID:
<jjscu2-qgr.ln1@mithrandir.intranet>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!news.glorb.com!tsicnews.teliasonera.com!newsf01.ono.com!news.espanix.net!62.81.31.29.MISMATCH!cyclone.auna.com!twister.auna.com!53ab2750!not-for-mailReferences:
<de6o9k$pob$1@antonio.escomposlinux.org>Show Full Headers
Complete Article Headers
X-Google-Thread: f86c8,261b71624a54c2c5 X-Google-Attributes: gidf86c8,public X-Google-Language: SPANISH,ASCII Path: arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!news.glorb.com!tsicnews.teliasonera.com!newsf01.ono.com!news.espanix.net!62.81.31.29.MISMATCH!cyclone.auna.com!twister.auna.com!53ab2750!not-for-mail Message-ID: <jjscu2-qgr.ln1@mithrandir.intranet> From: Jesús M. NAVARRO <jmnavarrol@able.es> Subject: Re: Script tcpdump Newsgroups: es.comp.os.linux.programacion References: <de6o9k$pob$1@antonio.escomposlinux.org> Lines: 77 User-Agent: KNode/0.8.2 MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Transfer-Encoding: 8Bit Date: Tue, 30 Aug 2005 04:24:18 +0200 NNTP-Posting-Host: 212.97.191.60 X-Trace: twister.auna.com 1125371282 212.97.191.60 (Tue, 30 Aug 2005 05:08:02 MEST) NNTP-Posting-Date: Tue, 30 Aug 2005 05:08:02 MEST Organization: AUNA TLC