[HS] Script

Le
Nahliel Steinberg
Bonjour,

Je suis confronté à un problème, je dois changer plus de 300 ip dans un fichier de configuration de nagios, le hosts.cfg.

Auriez-vous une petite moulinette (script), qui puisse au moins me détecter le champ address : ip pour les changer.

J'aimerai faire un read pour une question posée :

quel ip voulez-vous changer : 10.10.1.56
quelle est la nouvelle : 10.10.35.40

Qu'il détecte l'ip à changer et écrive la nouvelle.

je ne vois pas du tout comment je peux faire ça, mes compétences en bash sont un peu limité ;-)

--
Nahliel

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
Archive: https://lists.debian.org/20140522065109.GA25679@debianserver.info-cr.fr
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
S
Le #26147302
Bonjour,

Le jeudi 22 mai 2014 à 8:51, Nahliel Steinberg a écrit :
J'aimerai faire un read pour une question posée :

quel ip voulez-vous changer : 10.10.1.56
quelle est la nouvelle : 10.10.35.40

Qu'il détecte l'ip à changer et écrive la nouvelle.

je ne vois pas du tout comment je peux faire ça, mes compétences en bash sont un peu limité ;-)



Bash ne va effectuer qu'une infime partie du boulot…

Tu auras besoin de :
- echo - pour afficher du texte
- read - pour capturer la saisie de l'utilisateur
- sed - pour remplacer dans le(s) fichier(s)

Seb

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: https://lists.debian.org/
Belaïd
Le #26147312
--089e01681cd4e2098304f9f8123d
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Bonjour,
awk peut faire ça très facilement
Le 22 mai 2014 08:51, "Nahliel Steinberg"
Bonjour,

Je suis confronté à un problème, je dois changer plus de 3 00 ip dans un
fichier de configuration de nagios, le hosts.cfg.

Auriez-vous une petite moulinette (script), qui puisse au moins me
détecter le champ address : ip pour les changer.

J'aimerai faire un read pour une question posée :

quel ip voulez-vous changer : 10.10.1.56
quelle est la nouvelle : 10.10.35.40

Qu'il détecte l'ip à changer et écrive la nouvelle.

je ne vois pas du tout comment je peux faire ça, mes compétence s en bash
sont un peu limité ;-)

--
Nahliel

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive:
https://lists.debian.org/





--089e01681cd4e2098304f9f8123d
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<p dir="ltr">Bonjour,<br>
awk peut faire ça très facilement</p>
Bonjour,<br>
<br>
Je suis confronté à un problème, je dois changer plus de 300 ip dans un fichier de configuration de nagios, le hosts.cfg.<br>
<br>
Auriez-vous une petite moulinette (script), qui puisse au moins me dét ecter le champ address : ip pour les changer.<br>
<br>
J&#39;aimerai faire un read pour une question posée :<br>
<br>
quel ip voulez-vous changer : 10.10.1.56<br>
quelle est la nouvelle : 10.10.35.40<br>
<br>
Qu&#39;il détecte l&#39;ip à changer et écrive la nouvelle.< br>
<br>
je ne vois pas du tout comment je peux faire ça, mes compétences en bash sont un peu limité ;-)<br>
<br>
--<br>
Nahliel<br>
<br>
--<br>
Lisez la FAQ de la liste avant de poser une question :<br>
<br>
Pour vous DESABONNER, envoyez un message avec comme objet &quot;unsubscribe &quot;<br>
vers En cas de soucis, contactez EN ANGLAIS Archive: <br>
</blockquote></div>

--089e01681cd4e2098304f9f8123d--

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: https://lists.debian.org/CAFuS2bbXW2rbDiqyKYC_BqU=
Francois Lafont
Le #26147402
Bonjour,

Le 22/05/2014 08:51, Nahliel Steinberg a écrit :

Je suis confronté à un problème, je dois changer plus de 300 ip dans un fichier de configuration de nagios, le hosts.cfg.

Auriez-vous une petite moulinette (script), qui puisse au moins me détecter le champ address : ip pour les changer.

J'aimerai faire un read pour une question posée :

quel ip voulez-vous changer : 10.10.1.56
quelle est la nouvelle : 10.10.35.40

Qu'il détecte l'ip à changer et écrive la nouvelle.



Tu ne disposes pas d'un fichier csv du genre celui ci-dessous ?

ip1_à_changer;nouvelle_ip1
ip2_à_changer;nouvelle_ip2
ip3_à_changer;nouvelle_ip3
...
ip300_à_changer;nouvelle_ip300

Parce que 300 saisies à se taper à la main, c'est quand même un peu
galère. Si c'est le cas, je verrais bien un script qui lit le csv et
qui génére une « grosse » commande sed du genre ça :

sed -ir
-e 's/10.10.0.56/10.0.35.40/g'
-e 's/10.0.0.57/10.0.35.41/g'
...
'liste_ip.csv'


--
François Lafont

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: https://lists.debian.org/
Nahliel Steinberg
Le #26147392

Tu ne disposes pas d'un fichier csv du genre celui ci-dessous ?

ip1_à_changer;nouvelle_ip1
ip2_à_changer;nouvelle_ip2
ip3_à_changer;nouvelle_ip3
...
ip300_à_changer;nouvelle_ip300

Parce que 300 saisies à se taper à la main, c'est quand même un peu
galère. Si c'est le cas, je verrais bien un script qui lit le csv et
qui génére une « grosse » commande sed du genre ça :

sed -ir
-e 's/10.10.0.56/10.0.35.40/g'
-e 's/10.0.0.57/10.0.35.41/g'
...
'liste_ip.csv'




Non pas du tout, j'ai un fichier de configurattion cfg, qui contient un champ address : IP

--
Nahliel

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: https://lists.debian.org/
Francois Lafont
Le #26147452
Le 22/05/2014 09:56, Nahliel Steinberg a écrit :

Non pas du tout, j'ai un fichier de configurattion cfg, qui contient un champ address : IP



Ok, ça c'est le fichier "hosts.cfg". Mais pour changer les
IP, il te faut bien un « document » qui te dit cette IP là
il faudra la changer en ça, celle-ci en ça etc., non ?


--
François Lafont

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: https://lists.debian.org/
Nahliel Steinberg
Le #26147422
Tu auras besoin de :
- echo - pour afficher du texte
- read - pour capturer la saisie de l'utilisateur
- sed - pour remplacer dans le(s) fichier(s)



Oui pour la partie read, echo, je bloque pour la detection du champ et le remplacement.


--
Nahliel

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: https://lists.debian.org/
Nahliel Steinberg
Le #26147432
Le 22/05/14 at 10:04, Francois Lafont a ecrit:
Le 22/05/2014 09:56, Nahliel Steinberg a écrit :

Non pas du tout, j'ai un fichier de configurattion cfg, qui contient un champ address : IP



Ok, ça c'est le fichier "hosts.cfg". Mais pour changer les
IP, il te faut bien un « document » qui te dit cette IP là
il faudra la changer en ça, celle-ci en ça etc., non ?




;-) c'est logique

J'ai déjà tout ça, c'est le remplacement qui me pose problème.

--
Nahliel

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: https://lists.debian.org/
Nahliel Steinberg
Le #26147442
Le 22/05/14 at 09:29, Belaïd a ecrit:
Bonjour,
awk peut faire ça très facilement




Tu écrirais ça comment ? ;-))

--
Nahliel

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: https://lists.debian.org/
S
Le #26147512
Le jeudi 22 mai 2014 à 10:06, Nahliel Steinberg a écrit :
>Tu auras besoin de :
> - echo - pour afficher du texte
> - read - pour capturer la saisie de l'utilisateur
> - sed - pour remplacer dans le(s) fichier(s)

Oui pour la partie read, echo, je bloque pour la detection du champ et le remplacement.



Tu as essayé ça ?
- man sed
- http://lmgtfy.com/?q=tutoriel+sed

À moins que tu n'attendes qu'on te livre la solution toute prête, si bien que tu
n'aies même pas à la comprendre…

Seb

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: https://lists.debian.org/
Francois Lafont
Le #26147502
Oups, désolé Nahliel, je t'ai répondu en privé au
lieu de passer par la mailing list. On la refait. :)

Le 22/05/2014 10:07, Nahliel Steinberg a écrit :
Le 22/05/14 at 10:04, Francois Lafont a ecrit:
Le 22/05/2014 09:56, Nahliel Steinberg a écrit :

Non pas du tout, j'ai un fichier de configurattion cfg, qui contient un champ address : IP



Ok, ça c'est le fichier "hosts.cfg". Mais pour changer les
IP, il te faut bien un « document » qui te dit cette IP là
il faudra la changer en ça, celle-ci en ça etc., non ?




;-) c'est logique



Plus haut, je te demande si tu disposes d'un fichier csv et tu me
réponds « Non pas du tout ». Et là, tu me dis que si... Bref,
pas tout compris. À moins que ce « document » en question ne soit
au format papier.

J'ai déjà tout ça, c'est le remplacement qui me pose problème.



Pour le remplacement, tu as une piste avec le sed que j'ai donné
en exemple (je change les IP pour que ça soit aligné et plus
compréhensible) :

sed -ir
-e 's/10.0.0.56/10.0.35.40/g'
-e 's/10.0.0.57/10.0.35.41/g'
hosts.cfg # <---- au passage je m'étais planté ici,
# il s'agit du fichier hosts.cfg.

Avec la commande ci-dessus, l'IP 10.0.0.56 sera
remplacée par 10.0.35.40, l'IP 10.0.0.57 sera
remplacée par 10.0.35.41. Le tout de manière non interactive.

Les « . » sont échappés car en regex ils ont une signification
( « . » signifie « n'importe quel caractère »). Pour lui faire
perdre cette signification spéciale, on doit faire un échappement
(et du coup « . » signifie « le caractère point »). Du coup,
les . enlèvent un peu de lisibilité au sed mais bon avec les
regex...

En tout cas, je répète, si tu as déjà un fichier csv indiquant
les correspondances entre les anciennes IP et les nouvelles, il
ne faut pas s'embêter à faire un truc interactif à base de read
et de (300 !) saisies manuelles. Il faut faire un remplacement
automatique comme dans la commande ci-dessus. Le souci étant
de générer cette commande avec un script. En tout cas, c'est
la méthode qui me vient à l'esprit.

--
François Lafont


--
François Lafont

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: https://lists.debian.org/
Publicité
Poster une réponse
Anonyme