|
|
|
|
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
Salut,
|
Voilà le lien ,
|
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é.
|
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.
|