[shell/bash] script sed besoin d'aide svp

Résolu/Fermé
Madmat59 Messages postés 98 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 22 décembre 2011 - 22 juin 2009 à 14:44
Madmat59 Messages postés 98 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 22 décembre 2011 - 22 juin 2009 à 15:28
Bonjour,

Je realise actuellement un script pour Nagios, j'ai besoin d'utiliser la commande SED seulement je bloque sur une partie :

define hostgroup{
hostgroup_name linux-servers ;
alias Linux Servers ;
members localhost;
}

define hostgroup{
hostgroup_name groupeA ;
alias grpA ;
members localhost;
}

comment faire pour que le mot "serveur1" soit à droite de members SEULEMENT dans hostgroup du groupe A et pas dans linux-servers.
A voir également:

6 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
22 juin 2009 à 14:50
Salut,

Merci de poster un exemple AVANT => APRES pour une meilleure compréhension !
0
Madmat59 Messages postés 98 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 22 décembre 2011 2
22 juin 2009 à 14:58
désolé c'est assez difficil à expliquer :

En fait dans le même fichier de configuration j'ai deux déclaration de groupe :


define hostgroup{
hostgroup_name linux-servers ;
alias Linux Servers ;
members localhost;
}

define hostgroup{
hostgroup_name groupeA ;
alias grpA ;
members localhost;
}

Seulement dans mon script je souhaiterai qu'une machine "serveur1" soit affectée à un des deux groupes que l'on choisira "Souhaitez vous affectez la machine au groupe linux ou au groupe A":
ce qui donnerai :

define hostgroup{
hostgroup_name linux-servers ;
alias Linux Servers ;
members serveur1, localhost;
}

OU

define hostgroup{
hostgroup_name groupeA ;
alias grpA ;
members serveur1, localhost;
}

vous m'avez déjà aidé il y a quelque jour grâce à cette commande qui permettait d'ajouter à droite de members un nom :

sed -i "s/members/& $vNom, /" /usr/local/nagios/etc/objects/localhost.cfg

Seulement dans ce fichier j'ai deux fois members et je souhaite ajouter le nom "serveur1" à un des deux.

Voila en esperant que vous allez pouvoir m'aider

Cordialement Madmat59
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
22 juin 2009 à 15:04
jp@MDK:~/tmpfs ssh$ cat plop
define hostgroup{
hostgroup_name linux-servers ;
alias Linux Servers ;
members localhost;
}

define hostgroup{
hostgroup_name groupeA ;
alias grpA ;
members localhost;
}
jp@MDK:~/tmpfs ssh$ read -p "Quel groupe ? " choix;sed "/define/,/}/{/${choix}/,/}/{s/members/& serveur1,/}}" plop
Quel groupe ? groupeA
define hostgroup{
hostgroup_name linux-servers ;
alias Linux Servers ;
members localhost;
}

define hostgroup{
hostgroup_name groupeA ;
alias grpA ;
members serveur1, localhost;
}
jp@MDK:~/tmpfs ssh$
Rajouter l'option "-i" si tout marche bien ;-))
0
Madmat59 Messages postés 98 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 22 décembre 2011 2
22 juin 2009 à 15:12
Merci pour votre aide j'ai un peu de mal à comprendre la commande, mon fichier ou il faut ajouter serveur1 se trouve dans usr/local/nagios/etc/objects/localhost.cfg je dois donc rajouter une commande ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Madmat59 Messages postés 98 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 22 décembre 2011 2
22 juin 2009 à 15:21
Je viens de comprendre :D, vais tester si ça fonctionne je vous tiens au courant merci encore !
0
Madmat59 Messages postés 98 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 22 décembre 2011 2
22 juin 2009 à 15:28
ça fonctionne !!!!!!!!!!!!!!!!!!!!!!

MERCI BEAUCOUP !!!
0