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

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Concaténer des fichiers de logs

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Concaténer des fichiers de logs

n°552655
Goon
Posté le 05-09-2004 à 13:00:45  profilanswer
 

J'ai un ensemble de fichiers de logs nommés log-DD-MM-YYYY.log Je voudrai n'en faire qu'un fichier. Je suppose que c'est une opération courante mais je n'ai pas trouvé comment faire. Quelqu'un peut m'aider ? :hello:

mood
Publicité
Posté le 05-09-2004 à 13:00:45  profilanswer
 

n°552657
krtek
Just Do It
Posté le 05-09-2004 à 13:07:03  profilanswer
 

Code :
  1. for i in log-*.log ; do
  2.   cat $i >> fichier_final.log
  3. done


 
Cela devrait faire l'affaire :)


Message édité par krtek le 05-09-2004 à 13:07:23
n°552660
Goon
Posté le 05-09-2004 à 13:18:22  profilanswer
 

Merci beaucoup ! ;)

n°556843
fguilleme
Posté le 14-09-2004 à 16:17:26  profilanswer
 

tu avais cat log-*.log > fichier_final.log

n°684298
SnowKhan
Posté le 27-05-2005 à 16:36:30  profilanswer
 

Bonjour,  
 
je me permets de faire remonter ce thread car j'ai à peu près la même problème, mais en un poil plus complexe...  ;)  
 
J'ai un hébergeur (dont je tairai le nom) qui me génère un log par heure (+ de 3000 fichiers depuis janvier), et je souhaite concaténer tout ça en un log par jour.
 
Voila le format de mes fichiers :
 
toto.txt-yyyymmjj-hhmm  
 
et j'aimerais en sortie :
 
toto-yyyymmjj.log
 
La où ça se complique un peu c'est que mon cher hébergeur génère des lignes vides (ou plutot des lignes avec des espaces ou des tabs, bref des lignes bizarres)  au milieu des fichiers de logs, j'en profite donc pour filtrer ces lignes inutiles au moment de concaténer au moyen de sed (qui filtre toutes les lignes ou ya pas de chiffres, étant donné que chaque ligne de log commence par une IP ça le fait bien) :
 

Code :
  1. cat $myfile | sed -e '/^[^0-9]/d' >> toto-${mydate}.log


 
 
Merci d'avance pour votre aide!
 
(je débute totalement sous Unix)

n°684304
ory
Posté le 27-05-2005 à 16:58:25  profilanswer
 

déjà tu peux simplifier ta commande sed

$ sed -i '/^$/d' log.txt


Message édité par ory le 27-05-2005 à 16:58:35
n°684308
SnowKhan
Posté le 27-05-2005 à 17:04:10  profilanswer
 

nan c'est ce que j'avais fais au début mais ça ne fonctionne pas car ce ne sont pas que des "simples" lignes vides mais des lignes batardes de je ne sais quoi (probablement un mix d'espaces et de tabulations)...
 
Bref ça m'a bien gonflé et j'ai fini par faire comme ça car de toute manière chaque ligne de log commence par une IP.
 
Merci quand même pour le conseil, mais mon réel problème ne vient pas du sed mais de la concaténation de mes logs ;-)

n°684309
Mjules
Modérateur
Parle dans le vide
Posté le 27-05-2005 à 17:09:18  profilanswer
 

cat *$MADATE* | sed machin >> fichier_final
 
ça marche pas çà ?


---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
n°684321
SnowKhan
Posté le 27-05-2005 à 17:20:41  profilanswer
 

Je ne veux pas un seul fichier au final, mais un fichier par jour ;)

n°684329
Mjules
Modérateur
Parle dans le vide
Posté le 27-05-2005 à 17:26:11  profilanswer
 

remplace le nom du fichier final :spamafote:
 
mais je suis pas sur d'avoir bien compris ; tu veux le faire une fois pour toute ou ce sera une tâche journaliére ?
 
dansle 2° cas, il suffit de créer une variable MADATE=`date +%Y%m%d` et le script moulinera sur toute les entrées de la date du jour


---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
mood
Publicité
Posté le 27-05-2005 à 17:26:11  profilanswer
 

n°684339
SnowKhan
Posté le 27-05-2005 à 17:33:27  profilanswer
 

ça va etre une tache journalière mais le bout de code qui concatène au fur et à mesure est déjà implémenté et fonctionne très bien.
 
Seulement vu que je débarque avec des logs depuis décembre 2004 je dois aussi effectuer cette tache une fois pour toute (concaténer tous mes logs horaires en un log/jour) :)


Message édité par SnowKhan le 27-05-2005 à 17:34:00
n°684344
Mjules
Modérateur
Parle dans le vide
Posté le 27-05-2005 à 17:45:56  profilanswer
 

j'ai bien une idée, mais elle est un peu compliqué et je pense qu'il y a plus simple.
 
tu listes tout tes fichier et tu envoies la liste dans un fichier, tu coupes la partie qui contient la date et tu l'envoies dans un autre fichier. Tu élimines les doublons.
 
Tu as donc un fichier qui contient chaque date qu'il te suffit de donner à manger à ton script en le parsant ligne par ligne.
 
ce qui donne un truc de genre (très moche, très pas optimisé voir inutilisable) :


ls |cut -d"-" -f 2|uniq > fichier1.txt
 
for DATE in `cat fichier1.txt`; do
cat *$DATE* | sed machin >> /autre_chemin/toto-$DATE.log
done


 
EDIT : je précise, c'est un bout d'exemple, pas optimisé du tout, probablement très moche.
 
Il est peut-être possible de faire :
 

for DATE in `ls |cut -d"-" -f 2|uniq`; do
cat *$DATE* | sed machin >> /autre_chemin/toto-$DATE.log
done


 
qui est surement plus beau


Message édité par Mjules le 27-05-2005 à 17:48:13

---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
n°684345
SnowKhan
Posté le 27-05-2005 à 17:51:02  profilanswer
 

merci beaucoup !
 
je vais essayer tout ça...
 
ne t'inquiète pas pour l'optimisation, vu mon niveau c'est pas vraiment mon soucis principal !!!


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

  Concaténer des fichiers de logs

 

Sujets relatifs
Serveur en rade - Détecter la panne - Quels logs regarder ?Pb de systeme de fichiers au demarrage
UNISON : synchronisation/sauvegarde de fichiers[réglé] Mandrake 10 : probleme Konqueror et gestion des fichiers
transferts de fichiers sécurisésFichiers .smd
Samba & XP : Propfind dans les logs d'apache !Fichiers en lecteure seule sur le serveur !!
Gestion de fichiers sous linuxrediriger la sortie standard vers 2 fichiers à la fois ?
Plus de sujets relatifs à : Concaténer des fichiers de logs


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