rss
Script shell, modification de fichiers (.csv)
par padowan
 Fil de Discussions
Statut : Non résolu
lundi 18 février 2008 à 10:48:33
Bonjour à tous,

Je voudrai de l'aide pour un petit souci de script shell


Pour mon script.
Tout d'abord il concerne l'outil de supervision réseau nagios que je dois mettre en place dans ma société.
Je veux réaliser un script me permettant d'avoir un fichier .csv avec les infos intéressantes sur les machine que je supervisionne sur mon réseau.

Les infos que je dois récupérer sont dans le fichiers retention.dat (une infime partie prsente ci dessous.

------------------------------------------------------
host {
host_name=NT6SIEXT03A
modified_attributes=0
check_command=check-host-alive
event_handler=
has_been_checked=1
check_execution_time=0.035
check_latency=0.000
last_state=0
plugin_outpu=PING OK - Packet loss = 0%, RTA = 0.99 ms
active_checks_enabled=1
passive_checks_enabled=1
}

host {
host_name=R-Arras
modified_attributes=0
check_command=check-host-alive
event_handler=
has_been_checked=1
check_execution_time=0.035
check_latency=0.000
last_state=0
plugin_outpu=PING OK - Packet loss = 0%, RTA = 0.99 ms
active_checks_enabled=1
passive_checks_enabled=1
}

service {
host_name=NT6SIEXT03A
service_description
modified_attributes=0
check_command=check-host-alive
event_handler=
has_been_checked=1
check_execution_time=0.035
check_latency=0.000
last_state=0
plugin_outpu=Now: Mean:0.000% Variance:0.00%
active_checks_enabled=1
passive_checks_enabled=1
}

----------------------------------------------------------

Ce que j'ai déjà fait.

#!/bin/sh
#editon csv

var=$(grep '\(host_name\|plugin_output\)' var/log/nagios/retention.dat)
echo $var > test.csv

pour l'instant ce script récupére des infos ligne par lignes , mais il me concaténe toutes les ligne que je récupére.

Je voudrai par exemple insérer un retour à la ligne dés que dans le .csv je rencontre le mot host. mais je ne vois pas du tout comment faire.


J'en ai parlé avec un habitué de ce forum qui fut d'une aide précieuse (jipicy).

Il ma donné cette réponse qui fonctionne quand le fichier est un fichier texte simple mais pas un .dat

sed -n '/^host_name/h;{/}/!{/^plugin_output/{H;g;s/\n/;/p;d}}}' monfichier

Si quelqun aurait déja eu ce probléme ou aurait une solution.

Merci d'avance à tous .
Configuration: Windows XP
Firefox 2.0.0.12
Répondre à padowan  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par jipicy, le lundi 18 février 2008 à 10:54:56 Fil de Discussions
Salut,

Peux-tu mettre sur Cjoint ton fichier ".dat" (ou une partie tout au moins si c'est possible bien entendu...).

Merci ;-)
Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.
Répondre à jipicy

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par padowan, le lundi 18 février 2008 à 11:22:18 Fil de Discussions
voilà le lien ,

Merci de prendre encor du temps pour moi

http://cjoint.com/data/cslvk1iQbP.htm
Répondre à padowan

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par jipicy, le lundi 18 février 2008 à 11:41:36 Fil de Discussions
Rajoute ce qui est en gras (en fait il faut rechercher les "host_name" commençant par une tabulation ainsi que les "plugin_output" eux aussi commençant par une tabulation et non en début de ligne (^)) :
sed -n '/^\thost_name/h;{/}/!{/^\tplugin_output/{H;g;s/\n/;/p;d}}}'
;-))

Édit : Et rajoute ça pour supprimer les tabulations :
sed -n '/^\thost_name/h;{/}/!{/^\tplugin_output/{H;g;s/\n/;/;s/\t//gp;d}}}'
;-))

Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.
Répondre à jipicy

8


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
Par jipicy, le lundi 18 février 2008 à 18:11:56 Fil de Discussions
Pour ceux que ça intéressent, voilà la version commentée :
#n                      # Affichage sur demande

/^\thost_name/ h {      # Si on rencontre le motif "host_name" précédé d'une tabulation
                        #+ on le place dans la mémoire annexe
/}/ !{                  # Tant qu'on ne rencontre pas une accolade fermante on lit les lignes
                        #+ suivantes
/^\tplugin_output/ {    # Si on rencontre le motif "plugin_output" précédé d'une tabulation
      H                 # On l'ajoute au contenu de la mémoire annexe
      g                 # On récupère le contenu de la mémoire annexe en le paçant dans
                        #+ la mémoire principale
      s/\n/;/           # On substitue le caractère fin de ligne par un point virgule
      s/\t//gp          # On supprime les tabulations et on affiche le contenu de la
                        #+ mémoire principale sur la sortie standard
      d                 # On efface le contenu de la mémoire principale et on redémarre
                        #+ un nouveau cycle
        }
    }
}
;-))
Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.
Répondre à jipicy

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par padowan, le lundi 18 février 2008 à 14:05:25 Fil de Discussions
Merci beaucoup Jicipy, c'est rare de trouver des gens aussi patient et serviable sur les forums de nos jours.
Répondre à padowan

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par jipicy, le lundi 18 février 2008 à 14:10:49 Fil de Discussions
Non je ne suis pas le dernier des Mohicans ;-))

Au fait, ça marche ou pas ?

Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.
Répondre à jipicy

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par padowan, le lundi 18 février 2008 à 17:23:37 Fil de Discussions
oui ça marche très bien , encore merci
Répondre à padowan

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par padowan, le mardi 19 février 2008 à 10:47:25 Fil de Discussions
Désolée de t'embéter ou plutôt de vous embéter tous , imaginons que je veuille récpérer trois informations et non deux , (host_name, plugin_output et check_command) j'ai essayer de reproduire les mêmes ligne en tentant des variantes mais rien ne sore ce que je veux exactement.
Le résultat le plus proche ce fajit grâce à ça.

/^\thost_name/ h {
/}/ !{
/^\tcheck_command/H;s/\n;/
/^\tplugin_output/ {
H
g
s/\n/;/
s/\t//gp
d
}
}
}


merci d'avance
Répondre à padowan

10


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
Par jipicy, le mardi 19 février 2008 à 11:08:49 Fil de Discussions
sed -n '/^\thost_name/h;{/}/!{/^\tcheck_command/H;/^\tplugin_output/{H;g;s/\n/;/g;s/\t//gp;d}}}'
;­-))

Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.
Répondre à jipicy

11


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par padowan, le mardi 19 février 2008 à 11:18:22 Fil de Discussions 
merci encore , ça marche , j'espère pouvoir te rendre la pareil dans un autre domaine un jour.
Répondre à padowan
Logiciels pertinents trouvés dans les téléchargements
Télécharger GPG 1.4.7GPG - GPG (GNU privacy guard) est une alternative libre au logiciel PGP. Ce logiciel permet de chiffrer des documents avec un haut...Catégorie: Chiffrement
Licence: Open Source
Télécharger Casc'ADSL 0.99 build 4209Casc'ADSL - Casc'ADSL est un outil destiné aux Internautes se connectant via le service d'accès distant et désireux de maintenir leur...Catégorie: ADSL
Licence: Freeware/gratuit
Télécharger AM-Deadlink 3.2AM-Deadlink - AM-DeadLink est un outil permettant de détecter les liens morts et les doublons dans les favoris ( bookmarks ) du ...Catégorie: Web
Licence: Freeware/gratuit
Télécharger SSH Secure Shell 3.0 build 203SSH Secure Shell - SSH secure shell for workstations est un client SSH flexible permettant de se connecter de façon sécurisée à des...Catégorie: Telnet/SSH
Licence: Open Source
Plus de logiciels gratuits sur « Script shell, modification de fichiers (.csv) »
Répondre
Titre du message :
Votre pseudo:
Votre email :
Message: 
  •  
  •  
Options: Recevoir les réponses par mail.
 

Aide