Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1067 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Script shell problème avec date

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Script shell problème avec date

n°1287905
spartiates​59
Posté le 17-08-2011 à 21:31:27  profilanswer
 

Bonjour,
j'aimerai exploiter les logs d'un logiciel sous linux dans un but statistique.
Le logiciel écrit des logs tous les jours dans le même fichier. Le programme commence à écrire les logs à 23H et peut terminer d'écrire vers 02H. A chaque début d'écriture de log le logiciel commence par écrire start et termine en écrivant end.
Exemple de log :
A 2011/07/29 23:00:00 Start
A 2011/07/29 23:30:10 champ1 champ2 champ3
A 2011/07/29 23:45:26 champ1 champ2 champ3
A 2011/07/30 00:18:33 champ1 champ2 champ3
A 2011/07/30 01:26:28 champ1 champ2 champ3
A 2011/07/30 01:45:54 End
J'aimerai que mon script récupère la valeur des champ3 pour la dernière session donc ici entre le 29/07 et 30/07
J'ai donc pour le moment ça :
cat fichier.log | grep 'champ1' | awk '{print $6}' mais la je récupère tous les champ3 de tous les jours.
Pouvez-vous m'indiquer comment faire pour récupérer la valeurs des champs 3 de la dernière session ?
Par avance merci

mood
Publicité
Posté le 17-08-2011 à 21:31:27  profilanswer
 

n°1287907
art_dupond
je suis neuneu... oui oui !!
Posté le 17-08-2011 à 22:20:15  profilanswer
 

Code :
  1. grep -i -B 1 end fichier.log | grep -vi end | awk '{ print $6 }'
 

Récupère la ligne avec "end" et celle qui précède | ne prend pas la ligne avec "end" | awk...

 

?


Message édité par art_dupond le 17-08-2011 à 22:21:19

---------------
oui oui
n°1287915
sputnick
bip...bip...bip...bip...bi...b
Posté le 18-08-2011 à 01:14:59  profilanswer
 

Code :
  1. awk '/'$(date "+%Y\/%m\/%d" )' .*Start/,/End/{if ($6) print $6}' <FICHIER>


 
On commence à matcher sur la date du jour + Start et on arrete sur la ligne contenant End suivante et on affiche la 6° colonne si elle existe
 
^^

n°1287989
spartiates​59
Posté le 18-08-2011 à 18:08:07  profilanswer
 

Bonjour et merci pour vos réponse,
 
je viens de tester la solution ci-dessous :
 

Citation :

awk '/'$(date "+%Y\/%m\/%d" )' .*Start/,/End/{if ($6) print $6}' monfichier.log


 
mais lorsque je valide rien ne se passe !  
 
Avez-vous une idée ?
 

n°1288431
sputnick
bip...bip...bip...bip...bi...b
Posté le 24-08-2011 à 18:08:56  profilanswer
 

Code :
  1. $ awk -V
  2. GNU Awk 4.0.0
  3. $ uname -a
  4. Linux FreAkyLab 2.6.39-ARCH #1 SMP PREEMPT Sat Jul 9 14:57:41 CEST 2011 x86_64 Intel(R) Core(TM)2 Quad CPU Q9650 @ 3.00GHz GenuineIntel GNU/Linux
  5. $ $SHELL -version
  6. GNU bash, version 4.2.10(2)-release (x86_64-unknown-linux-gnu)


 
Et toi ?
 
Est-ce qu'il y a bien comme dans l'exemple les chaines Start et End et une 6° colonne ?


Message édité par sputnick le 24-08-2011 à 20:21:42

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Script shell problème avec date

 

Sujets relatifs
pb de script linuxProbleme Bind Apache2 pour plusieurs sites local
Problème reverse proxy SSL Apache[resolu] Probleme partition / btrfs
Problème avec pam_mountProblème avec phpmyadmin...
Script ftp et caméra ip sous unixProbleme installation FreeNAS
Problème installation backtrack5syslog-ng et iptables
Plus de sujets relatifs à : Script shell problème avec date


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR