🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #1696

Re: Script tcpdump

#1696
From: Jesús M. NAVARRO
Date: Tue, 30 Aug 2005 02:24
77 lines
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-mail
References: <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