The UNIX and Linux Forums  

Go Back   Les systèmes UNIX et Linux Forums > Top Forums > De programmation et de script Shell
.
google unix.com



De programmation et de script Shell Posez vos questions à propos de KSH, CSH, SH, BASH, PERL, PHP, SED, awk et d'autres scripts shell et les langages de script shell ici.

Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
Fil Thread Starter Forum Réponses Last Post
grep'ing un fichier jusqu'à un certain message pallak7 De programmation et de script Shell 3 04-23-2009 12:48 PM
grep'ing de répertoires spécifiques, et en utilisant la sortie pour déplacer des fichiers JayC89 De programmation et de script Shell 1 12-06-2008 03:37 AM
Accélérer un script shell (find, grep et une boucle for) Dave Stockdale UNIX pour les nuls Questions et réponses 8 08-11-2008 05:36 AM
Accélérer le traitement d'un fichier dlam De programmation et de script Shell 4 07-19-2008 01:47 PM
l'accélération de la compilation sur SUN Solaris environnement swamymns De programmation et de script Shell 2 07-12-2006 01:06 PM

 
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Recherche sur ce Thread Rate Thread Modes d'affichage
  #1 (permalink)  
Old 04-21-2009
elinenbe elinenbe is offline
Registered User
  
 

Join Date: Dec 2008
Messages: 8
Question grep'ing et sed'ing morceaux en bash ... besoin d'aide sur l'accélération d'un analyseur de log.

J'ai un fichier qui est de 20 - 80 + Mo de taille qui est un certain type de fichier log.

Il enregistre l'un de nos processus et ce processus multi-threaded. Par conséquent, le fichier de log est une sorte de gâchis. Voici un exemple:

Le fichier journal se présente comme suit: "DATE TIME - THREAD ID - Détails", et un nouveau fichier est créé pour chaque jour
Citation:
20090409 000122 - BD0 - 123 de départ session
20090409 000122 - BD0 - Traitement 1
20090409 000122 - BD0 - Plus de traitement
20090409 000123 - EF0 - Ordre de départ session 234
20090409 000124 - EF0 - Traitement
20090409 000124 - BD0 - Traitement 2
20090409 000125 - BD0 - Plus de traitement
20090409 000125 - EF0 - Traitement
20090409 000125 - DD1 - Annuler les 345 de départ session
20090409 000125 - DD1 - Traitement
20090409 000126 - DD1 - Traitement 2
20090409 000126 - BD0 - 123 fermeture
20090409 000127 - 11F - 543 Requête de départ session
20090409 000127 - 11F - Traitement
..
..
20090409 000135 - 11F - Query 543 fermeture
..
20090409 000140 - EF0 - Commander 234 fermeture
..
..
..
20090409 000143 - DD1 - Annuler la fermeture de 345
Maintenant, voici où il obtient d'être une douleur ... J'ai besoin d'extraire les lignes de "Starting session" à "Fin de session" pour chaque ID de thread, et le dump de ces fichiers séparés. CEPENDANT, les ID de thread peut être reproduite au cours d'une journée - mais habituellement pas pour de nombreuses heures.

Une session peut durer de 30 secondes à 4 minutes ou si (~ 1200 lignes) dans le fichier log, et il ne peut y avoir jusqu'à 20 sessions simultanées.

Maintenant, j'ai quelque chose qui fonctionne - bien que très lentement. Je finis par grepper et sedding le dossier et plus. Lorsque le fichier est gros, il faut une grande quantité de temps. J'espère que quelqu'un ici peut m'aider à optimiser cela. Si possible, j'aimerais utiliser bash.

Merci,
Eric

Voici le code que je travaille, mais il est _slow_

Code:
    if [[ -e "$log_file" ]]
    then
        echo "parsing: "$log_file
        grep "starting session" $log_file | while read line 
        do
            thread=`echo $line | cut -d' ' -f4`
            sessiontype=`echo $line | cut -d' ' -f6`
            sessionnumber=`echo $line | cut -d' ' -f7`

            echo "  first line of session: "${line:0:25}"..."
            line2=`echo  - $thread - $sessiontype $sessionnumber shutting down`
            echo "  last line of session: "${line2:0:25}"..."
            sed -n "/$line/,/$line2/p" $log_file | grep " - $thread - ">session.$thread.$sessiontype.$sessionnumber
        done
    ....
Cela me donne un certain nombre de fichiers, que l'utilisation de l'exemple ci-dessus log sera créé, comme indiqué ci-dessous:
Citation:
file: session.BD0.Order.123
20090409 000122 - BD0 - 123 de départ session
20090409 000122 - BD0 - Traitement 1
20090409 000122 - BD0 - Plus de traitement
20090409 000124 - BD0 - Traitement 2
20090409 000125 - BD0 - Plus de traitement
20090409 000126 - BD0 - 123 fermeture

file: session.DD1.Cancel.345
20090409 000125 - DD1 - Annuler les 345 de départ session
20090409 000125 - DD1 - Traitement
20090409 000126 - DD1 - Traitement 2
..
..
..
20090409 000143 - DD1 - Annuler la fermeture de 345

file: session.11F.Query.543
20090409 000127 - 11F - 543 Requête de départ session
20090409 000127 - 11F - Traitement
..
..
20090409 000135 - 11F - Query 543 fermeture

file: session.EF0.Order.234
20090409 000123 - EF0 - Ordre de départ session 234
20090409 000124 - EF0 - Traitement
20090409 000125 - EF0 - Traitement
20090409 000140 - EF0 - Commander 234 fermeture
 

Bookmarks

Tags
bash, grep, sed

Thread Tools Recherche sur ce Thread
Recherche sur ce Thread:

Recherche avancée
Modes d'affichage Rate this thread
Rate this thread:

Règles de messages
Tu mai pas de nouvelles discussions: nonoui
Tu mai pas envoyer des réponses:
Tu mai pas envoyer des pièces jointes
Tu mai pas modifier vos messages

BB code est Sur
Smilies sont Sur
[IMG] code est Sur
Le code HTML est Hors tension
Trackbacks sont Sur
Pingbacks sont Sur
Refbacks sont Sur




Toutes les heures sont au format GMT -4. Le temps est maintenant 01:52 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traductions Langue Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Les systèmes UNIX et Linux Forums Content Copyright © 1993-2009. Tous droits Reserved.Ad de gestion par RedTyger

Content Relevant URLs par vBSEO 3.2.0