[gilug.org] Processar fitxers per ordre

Quim Rovira quim rovira gmail com
2008-11-15 16:04:44 UTC


Narcís, mira't el "man grep", perquè permet utilitzar expressions
regulars. Amb això, podries fer un filtre que t'agafi els quatre casos
que fas, i no t'hauràs de preocupar de reordenar-ho a posteriori, que
és molt redundant, i ho patiràs si els logs creixen gaire ;)

La opció per a les expressions regulars és -E, i el que necessites com
a pauta és quelcom en l'estil de "(g|k)dm.*(opened|closed)", però
millor prova-ho en línia de comandes, perquè sempre em lio una mica
per l'escapat dels caràcters.

De fet, una solució encara millor seria aïllar el logging del gdm i
kdm per a què passin al daemon de log que tinguis instal·lat un nivell
diferenciat, i aleshores pots configurar que tot això vaig a parar a
un arxiu de log que defineixis tu (o a diversos arxius, si vols
mantenir-ho també al authlog). A més a més, després també pots
configurar el logrotate (/etc/logrotate.d/*) perquè executi algun
script teu al rotar-lo cada cop, o el que pretinguis que es faci cada
vegada.
Porta més feina de documentació, però la solució és sens dubte més
maca, i t'estalvies deixar arxius al /tmp que tinguin permisos d'accés
equivocats, etc.


Salut!

On Wed, Nov 12, 2008 at 11:29 AM, Narcis Garcia - GiLUG
<> wrote:
> Bé, ara estic fent:
>
> # Copia i descompressió de LOGs en un directori temporal
> mkdir /tmp/bitacolasessions
> cp --preserve=timestamps /var/log/auth.* /tmp/bitacolasessions/
> if [ -f /tmp/bitacolasessions/auth.log.1.gz ] ; then gunzip
> /tmp/bitacolasessions/*.gz ; fi
>
> # Unió dels continguts ordenats
> ls -1tAr /tmp/bitacolasessions/auth.* | xargs cat
>>/tmp/bitacolasessions/enbrut.log
>
> # Selecció dels continguts d'interès
> cat /tmp/bitacolasessions/enbrut.log | grep gdm | grep opened
>>>/tmp/bitacolasessions/mescla.log
> cat /tmp/bitacolasessions/enbrut.log | grep kdm | grep opened
>>>/tmp/bitacolasessions/mescla.log
> cat /tmp/bitacolasessions/enbrut.log | grep gdm | grep closed
>>>/tmp/bitacolasessions/mescla.log
> cat /tmp/bitacolasessions/enbrut.log | grep kdm | grep closed
>>>/tmp/bitacolasessions/mescla.log
>
> # Reordenació de les línies
> cat /tmp/bitacolasessions/mescla.log | sort -M
>>/tmp/bitacolasessions/ordenat.log
>
> Quan faig la selecció, al fitxer "mescla.log" queden les línies ordenades
> per aquesta selecció, però com que les dates de la bitàcola (LOG) no porten
> any, la reordenació de les línies pot dur al desastre amb el canvi d'any.
> L'únic remei em sembla que seria poder fer una selecció d'aquest estil:
> cat /tmp/bitacolasessions/enbrut.log | grep (kdm o gdm) i grep (opened o
> closed) >>/tmp/bitacolasessions/ordenat.log
>
> Sabeu com es poden utilitzar operadors lògics amb grep ?
>
> Gracies
>
> -----Missatge original-----
> De: Jordi Pujol <>
> Per a: 
> CC: Narcis Garcia - GiLUG <>
> Assumpte: Re: [gilug.org] Processar fitxers per ordre
> Data: Tue, 11 Nov 2008 10:48:56 +0100
>
> El Sunday 09 November 2008 15:29:21 Narcis Garcia - GiLUG va escriure:
>> Hola,
>>
>> Vull fer un script que mostri el contingut dels fitxers:
>> /var/log/auth.log
>> /var/log/auth.log.0
>> però amb la següent instrucció:
>> cat /var/log/auth.log*
>> m'ho fa per ordre alfabètic.
>>
>> Algú sap com aconseguir que la instrucció "cat" o equivalent tramiti els
>> fitxers per ordre de data-hora ?
>>
>
> amb xarg podem encadenar varies instruccions per tal de processar les linies
> rebudes des de stdin
>
> la ordre ls ens dona varies opcions per ordenar la sortida,
> Sort entries alphabetically if none of -cftuvSUX nor --sort.
> aquesta ordre ho fa:
>
> ls -t /var/log/auth.log* | xargs -r cat
>
>> Gracies.
>>
>>
>> _______________________________________________
>> Llista del GiLUG
>> 
>> http://gilug.org/cgi-bin/mailman/listinfo/llista
>> * Tots els missatges queden publicats a:
>> http://gilug.org/pipermail/llista/
>
>
>
> _______________________________________________
> Llista del GiLUG
> 
> http://gilug.org/cgi-bin/mailman/listinfo/llista
> * Tots els missatges queden publicats a:
> http://gilug.org/pipermail/llista/
>



Més informació sobre la llista de correu gilug